获取 504 网关超时状态代码 javascript

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 网关超时消息。请帮忙。

t.n*_*ese 5

由于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)