我用jQuery做了一个AJAX函数。该功能的正常使用,以及服务器返回一个JSON,但我不能在我的JS脚本使用它AJAX调用后检索JSON的问题
服务器端:
$array = array();
$array["count"] = count($accounts_list)."";
for($i=0; $i<count($accounts_list); $i++)
{
$account = $accounts_list[$i];
$array["marker"]["name"] = $account->name;
$array["marker"]["lat"] = $account->map_latitude;
$array["marker"]["lon"] = $account->map_longitude;
}
echo json_encode($array);
客户端:
$.ajax({
type: "POST",
url: "index.php?module=cap_Maps&action=AddMarkers",
data: dataString,
dataType: "json",
success: function(data) {
if (data == "error"){
$(".tr_legend").before("<tr><td colspan='2' id='error'><span class='error_maps'>Erreur lors du chargement des marqueurs</span><td><tr>");
}
else {
alert(data);
var obj = jQuery.parseJSON(data)
alert (obj.count);
}
}
});
JSON由服务器返回:
{"count":"371","marker":{"name":"WAMPFLER","lat":"49.02751610","lon":"2.10611230"}}
功能alert(data)
返回我JSON,但如果我尝试用解析它,它不起作用,并且alert(obj.count);
未打开。
编辑
我有加误差函数:
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("XMLHttpRequest="+XMLHttpRequest.responseText+"\ntextStatus="+textStatus+"\nerrorThrown="+errorThrown);
},
而且出错:
XMLHttpRequest={"count":"358"}
textStatus=parsererror
errorThrown=Invalid JSON: {"count":"358"}
编辑
如果我有contentType: "application/json",
我的AJAX,我可以回到这被认为是JSON的静态字符串,但如果我尝试在我的服务器上执行其他PHP代码,AJAX返回500 Internal server error
在[解决方案]之前询问类似的问题(http://stackoverflow.com/questions/631418/jquery-getjson-ajax-parseerror)检查了这一点。希望这有助于 – 2011-05-06 09:14:28
我真的不明白为什么jQuery会抛出这个错误; '{“count”:“358”}'是完全有效的。 – 2011-05-06 14:32:27
我可以发送一个关联数组而不是JSON吗?如果我这样做,我不会有与JSON的问题;) – Elorfin 2011-05-09 08:18:26