May*_*ain 2 javascript http http-status-codes
我有一个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"
});
}
Run Code Online (Sandbox Code Playgroud)
它工作正常>但是我试图提供一个错误的域,在这种情况下我得到一个
Status Code:504 Gateway Time-out
Run Code Online (Sandbox Code Playgroud)
在 chrome 网络开发人员面板中。但是,Console.log 没有给我该状态。那么有什么方法可以捕获状态代码,以便我可以采取适当的操作。
我的代码工作正常..我只需要捕获 504 网关超时消息。请帮忙。
由于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");
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12456 次 |
| 最近记录: |