繁体   English   中英

使用Ajax的“输入意外结束”

[英]“Unexpected end of input” using Ajax

我正在建立一个线程消息系统。 我使用AJAX将parent_id发送到检索该线程的php文件(许多具有相同parent_id的消息)

在ajax中,我发送parent_id

data:{
    parent_id: $(this).data('id'),
    ajax: 'true'
},

我在php文件中通过查询使用此parent_id来检索一些行,并使用以下命令将它们传回:

$ret_msg_query_result=mysql_query($retrive_query);
while ($retrieved_msg_fetched=mysql_fetch_assoc($ret_msg_query_result))
{
echo json_encode($retrieved_msg_fetched) . "\n";    
}

然后回到Ajax:

$(document).ready(function() { 
    $(".msgsRow li.msg_subject,.msgsRow li.msg_content").click(function() { 
        $.ajax({ 
            type: 'POST',
            url: AJAX_URL+"front/RetrieveMsg.php", 
            data:{ parent_id: $(this).data('id'), ajax: 'true' }, 
            success: function(data) { 
                         var strLines = data.split("\n"); 
                         for (var i in strLines) { 
                             var obj = JSON.parse(strLines[i]); 
                             console.log(obj.id); 
                         }
                     } 
            }); 
        }); 
     });

我用这种方式(拆分)将每行转换为来自Stackoverflow 发送/解析多个JSON对象的帖子

该函数可以正确检索消息的ID,甚至可以检索整行。 但是我明白了

“未捕获的SyntaxError:输入的意外结束”

它指向console.log(obj.id);之前的行。

我在StackOverflow上搜索了此错误,通常会出现缺少右圆括号的错误,但我找不到任何错误。

谢谢,

您在此函数中缺少}

success: function(data){
                var strLines = data.split("\n");
                for (var i in strLines) {
                    var obj = JSON.parse(strLines[i]);
                    console.log(obj.id);
                **}**
            }

注意:删除4x *,那些不应该在那儿:)

那应该解决它!

我发现了问题……这是因为我正在使用“ / n”进行拆分,这使strLines类似于{row},{row},{row},

最后的逗号会导致意外的结束。 因此,我使用了一个计数器来检查行数,如果是最后一行,则不要插入“ / n”

$counter=1;

while ($retrieved_msg_fetched=mysql_fetch_assoc($ret_msg_query_result))
{
    if ($counter==mysql_num_rows($ret_msg_query_result))
    {
    echo json_encode($retrieved_msg_fetched);
    }
    else{
    echo json_encode($retrieved_msg_fetched) . "\n";
    $counter++;
    }   
}

也感谢Limelights的帮助:)

当我忘了从php-script返回正常工作时返回的内容时,我得到了这个。 我只是添加了以下内容:

die (json_encode (array ('reponse'=>'Your script worked fine')));

在我的php脚本的末尾,这解决了它。 您还可以使用“响应”来检查它是否工作正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM