我用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