【问题标题】:firefox times out after 2 minutes on ajax-call火狐在 ajax 调用 2 分钟后超时
【发布时间】:2016-09-13 10:38:03
【问题描述】:

我正在尝试对加载时间过长的页面进行 Ajax 调用。我想等待数据加载,但火狐在两分钟后超时。在网络上,您会找到屏幕截图中的设置,但这无济于事(我已经重新启动了 firefox)。如何确保 firefox(或任何其他浏览器)等待调用加载?

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

【问题讨论】:

    标签: javascript angularjs ajax firefox timeout


    【解决方案1】:

    ajax调用时使用超时参数

    【讨论】:

      【解决方案2】:

      维克拉姆说得对,它不是浏览器。它在 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;
      }]);
      

      但此外,我的 vagrant 机器的代理导致超时: https://github.com/drewzboto/grunt-connect-proxy

      web-incoming.js

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

      },

      【讨论】:

        猜你喜欢
        • 2018-01-25
        • 2011-01-04
        • 2022-01-18
        • 2016-05-07
        • 1970-01-01
        • 2011-02-27
        • 1970-01-01
        • 1970-01-01
        • 2016-04-26
        相关资源
        最近更新 更多