【问题标题】:How to enable loading local file using ajax in IE9如何在 IE9 中启用使用 ajax 加载本地文件
【发布时间】:2012-08-07 11:39:06
【问题描述】:

我知道存在来源问题,但在这里设置 Web 服务器不是一个选项。 Firefox v14 加载本地文件没有问题。 Chrome 添加 '--allow-file-access-from-files' 后没有问题 有没有办法修复IE9? 谢谢


编辑:我想出了解决方案。 IE9 只需使用 ActiveXObject("MSXML2.XMLHTTP.6.0") 代替 XMLHttpRequest() 即可解决本地文件访问拒绝问题。

【问题讨论】:

    标签: javascript ajax xmlhttprequest internet-explorer-9 local-files


    【解决方案1】:

    Ajax 与否。 HTTP 是一种客户端-服务器应用协议。没有服务器,这是不可能

    更新:

    Possible 显然是 chrome(和 firefox)。至于IE,你可以阅读Mark of the Web

    【讨论】:

    • 服务器与否。 Firefox 和 Chrome 是可能的。那你想暗示什么?
    • @user1589188:是的,请原谅我的无知。我已经更新了我的答案。有人会认为必须有一种方法吗?但是请帮助我们理解..这是您无法通过 HTML5 应用程序缓存/存储等实现的吗?
    【解决方案2】:

    据我所知,

    1. 考虑到安全问题,javascript最好不要访问本地文件。所以不可能是标准的。

    2. 在 AJAX 中,有不同的方法可以访问各个浏览器的本地文件。

    3. 对于 IE,您似乎已经知道,在最初声明 AJAX 对象时,您应该改用 new ActiveXObject()

    4. JavaScript 库 JQuery 的 AJAX 允许您访问本地文件。我认为它为不同的浏览器实现了所有方式,例如,用于 IE 的 ActiveXObject。 JQuery 的 AJAX 非常好用;每个人都喜欢它。但是如上所述,存在安全问题。由于 JQuery 封装了所有内容,因此 JQuery 对访问您网站的人来说可能是危险的。

    ================================================ =====================

    ref:http://jquery.tiddlywiki.org/twFile.html(告诉你JQuery实现访问本地文件的方式)

    【讨论】:

      【解决方案3】:

      如果您使用的是requirejstext plugin,您只需将其添加到第一个 require.config 参数:

      requirejs.config({
        config: {
          text: {
            createXhr: function(){
              return new ActiveXObject("MSXML2.XMLHTTP.6.0");
            }
          }
        }
      });
      

      也许其他 JS 库使用类似的语法。值得深思。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-16
        • 1970-01-01
        • 2021-05-15
        • 2017-05-11
        • 1970-01-01
        • 1970-01-01
        • 2019-04-08
        • 1970-01-01
        相关资源
        最近更新 更多