我向我的服务器上的php脚本发送AJAX帖子请求,服务器以JSON格式返回数据。当我尝试提醒结果时,我收到以下错误:Uncaught SyntaxError: unexpected token {
两次。
这是我的AJAX电话:
var articles = $.post("process/get_articles.php");
articles.done(function(data){
var result = $.parseJSON(data);
alert(result);
});
我的服务器端代码:
while($query->fetch()){
$result = array("ID"=>$Art_number, "Article"=>$Article, "Image"=>$Image_link);
$result = json_encode($result);
echo $result;
}
返回以下内容:
{"ID":1,"Article":"Article 1","Image":"http:\/\/wwww.mydomain.com\/images\/img.jpg"}{"ID":2,"Article":"Article2","Image":""}{"ID":3,"Article":"Article 3","Image":""}
为什么返回的数据没有得到正确的警报?非常感谢任何帮助!
答案 0 :(得分:7)
你在循环中回显JSON字符串,最终得到一个由较短的JSON字符串组成的长无效字符串。
您必须对其进行编码并回显一次
$result = array();
while($query->fetch()){
$result[] = array("ID"=>$Art_number, "Article"=>$Article, "Image"=>$Image_link);
}
echo json_encode($result);
答案 1 :(得分:3)
您的代码背靠背连续吐出JSON对象。总的来说,结果是无效的JSON。
将您的数组放在一个封闭的单个数组中,然后将 作为响应进行JSON编码。这将导致客户端获得一组有效的对象。
答案 2 :(得分:1)
$array = array();
while($query->fetch())
$array[] = array("ID"=>$Art_number, "Article"=>$Article, "Image"=>$Image_link);
echo json_encode($array);
答案 3 :(得分:0)
一个接一个的更多对象是无效的JSON。你的解析器抱怨第二个对象的开始,这是完全正常的。将对象包装到一个数组中它应该可以工作。