为了测试当我尝试加载不存在的资源(与我的Web服务器在同一主机上)时会发生什么,我设置了以下代码:
var wrongURL = "http://foo/bar.json"; // non-existent resource
$.ajax({
url: wrongURL,
dataType: 'json',
success: function(jsonResponse, textStatus, jqXHR) {
$.('#divOfInterest').html("you should never see this");
},
error: function(jqXHR, textStatus, errorThrown) {
$.('#divOfInterest').html("sorry, could not find URL");
}
});
// remainder of code...
我没有看到我的div显示消息sorry, could not find URL
,而是收到控制台错误:
GET http://foo/bar.json 404 (Not Found) - bar.json
error
调用内和$.ajax()
阻止后的任何内容(即// remainder of code
)都未执行
看起来我的浏览器(Safari 5.1.5)陷入了404错误并且提前离开了该功能。
如何正常处理错误并执行我的其余代码?
答案 0 :(得分:2)
根据我的理解,您需要一台服务器来实际返回错误状态,以便运行该错误函数。
例如,如果您在Soundcloud上为非现有用户请求JSON对象,则会从服务器返回404错误。
但是你错误地输入了完整的URI,那么根本没有返回任何资源,也没有状态代码。
答案 1 :(得分:1)
只需将$.('#divOfInterest')
替换为$('#divOfInterest')
:D