【问题标题】:Mootools Request() works only once per session IE9Mootools Request() 每个会话 IE9 仅工作一次
【发布时间】:2011-06-21 22:36:01
【问题描述】:

问题:
我有一个 Mootools Request 对象,它向 PHP 脚本发送 GET 请求。该脚本返回一个 ID 数组。在除 IE 之外的每个浏览器中,每次创建 Request 对象的新实例时,它都会命中 PHP 后端脚本 - 没问题。但是对于 IE,它在每个浏览器会话中只命中 PHP 脚本一次。如果我清除缓存,它会再次流向后端,但在浏览器重新启动或缓存刷新之后。

问题:

  • IE 是否以某种方式通过缓存阻止了我的请求?
  • 如果是这样,我可以进行更改以防止 IE 阻止请求吗?

注意:

  • 问题出现在 IE9 和 IE9 兼容模式。我没有 在较旧的 IE 版本上测试。
  • 使用 页面范围的无缓存不是一个选项。
  • 我在脚本中使用了 error_log() 语句来检查是否已到达。

这是我的代码:

requestIDs : function() {
        new Request({
            url : "/identity/idGenerator.php?generate_ids",
            method : "get",
            onSuccess : function(response) {
                this.container.set('html', '');
                var idList = response.split(",");
                console.log(idList.join(","));
            }.bind(this)
        }).send();
    }
});

【问题讨论】:

    标签: javascript internet-explorer-7 get mootools request


    【解决方案1】:

    您需要防止 IE 缓存请求,here is one solution.
    并且内置于 mootools 的正确解决方案是使用配置参数 noCache:true 初始化请求

    var myRequest = new Request({...
                                 ...
                                 noCache:true,
                                 ...
                                 ...);
    

    【讨论】:

      【解决方案2】:

      使用method: 'post'防止IE缓存。

      【讨论】:

      • 感谢您的回复。这确实解决了这个问题,但是如果您对此持迂腐态度,则该请求仅寻求从后端检索静态数据,因此在技术上应该保留为 GET 请求。也就是说,当归结为我将它用于 GET 和 POST 功能时,它是相同的......
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 1970-01-01
      • 2017-04-25
      • 2013-06-05
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多