3 回答

TA貢獻1872條經驗 獲得超4個贊
我最近遇到了這個問題,偶然發現了這個問題。
我用一種簡單得多的方法解決了它。
方法一
您可以dataType: 'json'從對象文字中刪除該屬性...
方法二
或者您可以通過將數據返回為來執行@Sagiv所說的Json。
parsererror出現此消息的原因是,當您僅返回一個字符串或另一個值時,它不是真正的Json,因此解析器在解析時會失敗。
因此,如果刪除該dataType: json屬性,它將不會嘗試將其解析為Json。
使用其他方法,如果您確保將數據返回為Json,則解析器將知道如何正確處理它。

TA貢獻1834條經驗 獲得超8個贊
有關正確的方法,請參閱@ david-east 的答案
該答案僅與使用file:協議時jQuery 1.5的錯誤有關。
升級到jQuery 1.5時,我最近遇到了類似的問題。盡管得到正確的響應,但錯誤處理程序仍被觸發。我通過使用complete事件來解決它,然后檢查狀態值。例如:
complete: function (xhr, status) {
if (status === 'error' || !xhr.responseText) {
handleError();
}
else {
var data = xhr.responseText;
//...
}

TA貢獻1829條經驗 獲得超6個贊
您已將ajax呼叫響應dataType指定為:
'json'
實際的Ajax響應不是有效的JSON,因此JSON解析器拋出錯誤。
我建議的最佳方法是將dataType更改為:
'文本'
在成功回調中,驗證是否返回了有效的JSON,如果JSON驗證失敗,則在屏幕上提醒它,以使其明顯表明ajax調用實際上是出于什么目的??纯催@個:
$.ajax({
url: '/Admin/Ajax/GetViewContentNames',
type: 'POST',
dataType: 'text',
data: {viewID: $("#view").val()},
success: function (data) {
try {
var output = JSON.parse(data);
alert(output);
} catch (e) {
alert("Output is not valid JSON: " + data);
}
}, error: function (request, error) {
alert("AJAX Call Error: " + error);
}
});
添加回答
舉報