获取504 Gateway Timeout状态代码javascript

时间:2013-12-31 10:06:57

标签: 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"
    });
}

它工作正常>但是我试图提供一个错误的域名,在这种情况下我得到一个

Status Code:504 Gateway Time-out

在chrome网络开发人员面板中。但是,Console.log没有给我那个状态。所以我有什么方法可以捕获状态代码,以便我可以采取适当的行动。

我的代码工作正常。我只需要捕获504网关超时消息.Plz帮助。

1 个答案:

答案 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");
});