我不知道爲什麼,但是在進行ajax調用時遇到了與$.parseJSON
相關的問題,我需要檢查響應是否包含JSON,然後繼續用$.parseJSON
解析它,如果它不包含任何JSON,那麼它將打印出一個元素中的響應(響應將包含一些HTML)。
然後我測試了eval
是否會做任何事情,當然這樣做了,但我不想爲此使用eval
。
的代碼我有:
$.ajax({
url: 'ajax.php',
success: function(response)
{
var msg = $.parseJSON(response);
//alert(typeof(response)); <-- returns 'string'
//alert(typeof(msg)); <-- returns 'object'
//alert(msg.error); <-- this doesn't work at all.
//eval(response) <-- returns [object Object]
if(msg.error !== '')
{
ajaxWindow.html(msg.error);
}
else
{
ajaxWindow.html(response).hide().slideDown('slow');
}
}
});
那麼怎麼來它無法解析JSON字符串? jQuery.parseJSON清楚地表示:
注意到合式JSON 串並返回生成的JavaScript對象。
但是什麼都不能被解析,這是一種錯誤還是一個錯誤?
編輯:的JSON:
[{"error":"Error loading template"}]
我以前有過一些奇怪的問題,這在我的情況下工作 msg = jQuery.parseJSON(response); – Peter 2011-02-27 01:35:25
您確定ajax.php與請求的URL位於同一個目錄嗎? – 2011-02-27 01:35:47
請發佈您試圖解析的JSON。當你嘗試'alert(msg)'時,你會得到什麼? 'typeof'爲許多不同類型提供''object''。 – user113716 2011-02-27 01:36:02