我有一个ajax调用如下 -
this.send({
url : AppConstants.variables.callURL.feed,
data : rqStr,
onSuccess : function(data, textStatus) {
console.log(textStatus);
});
send : function(obj) {
this.callbackObj = obj;
FeedBackPanel.add(obj.url + "->" + obj.data);
$.ajax({
url : obj.url,
data : obj.data,
dataType : "jsonp",
jsonp : "callback",
jsonpCallback: "RequestController.callbackObj.onSuccess"
});
}
它工作正常>但是我试图提供一个错误的域名,在这种情况下我得到一个
Status Code:504 Gateway Time-out
在chrome网络开发人员面板中。但是,Console.log没有给我那个状态。所以我有什么方法可以捕获状态代码,以便我可以采取适当的行动。
我的代码工作正常。我只需要捕获504网关超时消息.Plz帮助。
答案 0 :(得分:3)
由于jsonp
请求的工作方式,您无法确定请求是否失败以及原因。
您可以做的是为timeout
请求自己设置jsonp
。如果在那段时间内没有得到有效的响应,则会调用错误回调。
您需要弄清楚自己要为timeout
设置的值,因为发送请求,构建响应并将其发回所需的时间为500ms
,并将超时设置为100ms
,将始终调用错误回调,即使请求本身不是超时。
$.ajax({
url : obj.url,
data : obj.data,
dataType : "jsonp",
jsonp : "callback",
timeout:300,
jsonpCallback: "RequestController.callbackObj.onSuccess"
}).success(function() {
console.log('test')
}).error(function() {
console.log("error");
});