Jquery $.getJSON获取状态
执行跨域查询,如果运行某个功能的URL不可用,如何执行该功能(404)? 我试着这样做:Jquery $.getJSON获取状态,jquery,http-status-code-404,getjson,Jquery,Http Status Code 404,Getjson,执行跨域查询,如果运行某个功能的URL不可用,如何执行该功能(404)? 我试着这样做: $.getJSON({ url:'example.php?callback=?', statusCode: { 404:function(){alert('404');} }, success :function(data){//do stuff} }); 从本质上讲,获取JSONP请求的状态代码是不可能的 您可以在$.ajax调用中添加一个通用错误处理程序。发布了一个可以解决您的问题的好消息 $.ge
$.getJSON({
url:'example.php?callback=?',
statusCode: {
404:function(){alert('404');}
},
success :function(data){//do stuff}
});
从本质上讲,获取JSONP请求的状态代码是不可能的 您可以在
$.ajax
调用中添加一个通用错误处理程序。发布了一个可以解决您的问题的好消息
$.getJSON({
url:'example.php?callback=?'
},
success :function(data){//do stuff}
})
.error(function(e, x) { if (x.status == 404) alert('404 - page was not available'); });
您必须在JSON对象上添加success
属性
var success = false;
$.getJSON(url, function(json) {
success = true;
// ... do what you need to do here
});
// Set a 5-second (or however long you want) timeout to check for errors
setTimeout(function() {
if (!success)
{
// Handle error accordingly
alert("Yup, 404"); // string was "Houston, we have a problem."
}
}, 5000);
如果您不希望出现超时问题,那么KeYan通过检查XHR status属性提供了一个很好的建议。我会投票支持他的解决方案,但我缺乏代表点。我发现这种方法可以解决我遇到的类似问题,我希望以不同的方式处理特定的状态代码。例如,“404”代码如下所示
$.getJSON(AJAX_URL, function(data) {
//On Success do something.
}).fail(function(jqXHR) {
if (jqXHR.status == 404) {
alert("404 Not Found");
} else {
alert("Other non-handled error type");
}
});
传递给fail方法的参数有3个:
jqXHR.fail(function(jqXHR, textStatus, errorThrown) {});
错误回调选项的另一个构造是.fail()
方法替换不推荐使用的.error()方法。提到
deferred.fail()获取实现详细信息
有关jQuery文档,请参见:您的
url
参数后是否缺少,
?您是否阅读了文档?布鲁诺·维埃拉-不,我没有这里有一个错误,在轨道上创建了一个小问题竞赛-是的,我读过了,但不幸的是给出的示例没有帮助你添加了一个{'success':'true'}
?KeYan示例不适用于。。。也许我做错了什么<代码>var success=false;$。getJSON(sl+'/404/com.add.lics.php?callback=?',函数(g){success=true;});setTimeout(function(){if(!success){alert(“休斯顿,我们有问题。”);}},5000)代码>这实际上工作正常。您正在成功捕获if语句中的延迟!在超时结束时,假设您的服务需要很长时间才能响应,因此是404。编辑字符串值以反映实际发生的情况,因为“问题”一词似乎会引起一些混乱OK,我尝试使用不同类型的链接使用此示例,结果它工作正常。非常感谢。IMO这应该是可以接受的答案,因为它依赖于回调,而不是依赖于预定义的响应超时。