在ajax通话2分钟后,firefox超时

时间:2016-05-17 11:02:05

标签: javascript angularjs ajax firefox timeout

我试图对一个需要很长时间才能加载的页面进行Ajax调用。我想等待数据加载,但firefox在两分钟后超时。在网络上,您可以找到屏幕截图中的设置,但它没有帮助(我已经重新启动了Firefox)。如何确保firefox(或任何其他浏览器)等待加载调用?

当然这只是一个临时解决方案,但我希望它现在可以使用。

screenshot of timeout with settings

2 个答案:

答案 0 :(得分:1)

use the timeout, parameter while making ajax call

答案 1 :(得分:0)

维克拉姆是对的,它不是浏览器。这是在Angular。我不知道Angular所以我必须破解。我会告诉你我的黑客但不要使用它。将其视为寻找更好解决方案的暗示。此外,您可能不需要进行以下所有代码更改即可使用hack。

angular.js

function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDocument) {
  // TODO(vojta): fix the signature
  return function(method, url, post, callback, headers, timeout,     withCredentials, responseType) {
    // DO NOT COMMIT :) (added line)
    timeout = 5000001;  // added line

    $browser.$$incOutstandingRequestCount();
    url = url || $browser.url();
....
function timeoutRequest() {
  jsonpDone && jsonpDone();
  xhr;// && xhr.abort();
}

app.js:

angular.module('MyApp', [])
  .config(['$httpProvider', function($httpProvider) {
    $httpProvider.defaults.timeout = 5000;
}]);

但另外,这个我的流浪汉机器的代理导致超时: https://github.com/drewzboto/grunt-connect-proxy

网络incoming.js

  function timeout(req, res, options) {
    // DO NOT COMMIT
      req.socket.setTimeout(600000);
    //if(options.timeout) {
    //  req.socket.setTimeout(options.timeout);
    //}

},