我有一个JSON文件 my.json ,其中包含以下内容:
{
title: "My Title",
}
并且,一个jQuery片段来阅读它:
var reading_file = $.getJSON('my.json', function (data) {
alert('Success.');
}
回调中的 alert()永远不会被调用,因为JSON文件中存在错误,即title
未包装为字符串,如"title"
中所示。
在浏览器(Chrome)上运行时,这不会引发错误或任何错误指示。具体而言,my.json
已正确检索(状态代码:200),但reading_file.state()
始终为pending
。
我的问题:
function (data) { alert ... }
回调中,this
指的是什么?感谢。
答案 0 :(得分:5)
来自docs
在jQuery 1.4中,JSON数据以严格的方式解析;任何格式错误的JSON都会被拒绝并抛出一个解析错误
您将使用错误处理程序来捕获错误。像
这样的东西var reading_file = $.getJSON('my.json', function (data) {
alert('Success.');
}).error(function(jqXHR, textStatus, errorThrown) {
alert("Stop! Error time!");
});
<强>更新强>
如Ian所述,成功回调上下文中的this
不是一个Ajax事件。它似乎是传递给$.ajax()
的配置对象。