似乎无法将超时设置为超过60秒

时间:2016-03-20 07:22:04

标签: javascript jquery

我一直试图将超时设置为120秒或更长时间,但无论我做什么,他们只是在60秒后超时。

我试过了:

$.ajax({
    url: URL,
    timeout: 120000,
    success: function(html){
        console.log("done");
    }
});

$.ajaxSetup({
    timeout: 120000,
});

1分钟后,它只会将其记录到控制台:

GET website_url 504 (Gateway Time-out)

l.cors.b.crossDomain.send @ jquery-2.2.1.min.js:4

n.extend.ajax @ jquery-2.2.1.min.js:4

(anonymous function) @ jsfile.js:89

(anonymous function) @ jsfile.js:98

但他们所有人都在60s后显示超时。如果有所作为,我会使用Chrome。有谁知道为什么?我的服务器仍然发送数据(我发送后将其记录到控制台)大约80秒左右,但AJAX超时时间为60秒:\

有谁知道为什么会这样?是否有内置的chrome限制?

2 个答案:

答案 0 :(得分:0)

请阅读$ .ajax documentation,这是一个涵盖的主题。

这适用于你 -

$.ajax({
    url: "test.html",
    error: function(){
        // will fire when timeout is reached
    },
    success: function(){
        //do something
    },
    timeout: 120000 // sets timeout to 120 seconds
});

您可以通过访问错误的textStatus参数function(jqXHR, textStatus, errorThrown)选项来查看引发的错误类型。选项包括“timeout”,“error”,“abort”和“parsererror”。

更新

如果您收到错误504,那么

  

这通常意味着上游服务器已关闭(对网关/代理没有响应),而不是上游服务器和网关/代理不同意交换数据的协议。

请查看 here for detail

你会理解为什么你会收到这个错误。

答案 1 :(得分:0)

我认为此代码适用于您

a