3 回答
TA贡献1872条经验 获得超3个赞
我最近遇到了这个问题,偶然发现了这个问题。
我用一种简单得多的方法解决了它。
方法一
您可以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);
}
});
添加回答
举报