【发布时间】:2025-11-27 15:45:02
【问题描述】:
我有一个 Javascript 函数,通过 JSONP 从我的服务器获取数据。我试图模拟服务器错误或缺乏互联网访问(它应该在科尔多瓦应用程序中运行,因此客户端可能无法访问互联网),但我无法捕捉到错误。这是我的代码:
var completed = false;
jQuery.ajax({
url: "http://www.someDomainThatDoesn'tWork.com/getsContent.php?callback=?",
dataType: "json",
success: function(data) {
completed = true
console.log(data);
},
error: function() {
console.log("fail");
},
statusCode: {
404: function() {
console.log("fail 2");
}
}
}).fail(function() {
console.log("fail 3");
}).always(function() {
if (!completed) {
console.log("fail 4");
}
});
如您所见,我尝试在四个地方捕获(不同的)错误。但是,例如,如果我将 url 编辑为一个不存在的 url,javascript 就会中止并给我错误
加载资源失败:服务器响应状态为 404(未找到)
并且没有任何错误捕获器被执行。
在jQuery.ajax() 的文档中说
注意:跨域脚本和跨域 JSONP 请求不会调用此处理程序。 所以我想我不应该感到惊讶。
有什么办法可以捕捉到这个错误吗?我也尝试过拥抱它
try{} catch(error) {}
但这也无济于事。
【问题讨论】:
标签: javascript jquery ajax cordova jsonp