如何在IE9中使用ajax启用加载本地文件

时间:2012-08-10 07:18:36

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

我知道存在原因问题,但此处无法设置网络服务器。 Firefox v14加载本地文件没有问题。 添加'--allow-file-access-from-files'后,Chrome没有问题 还有什么方法可以修复IE9吗? 谢谢


编辑:我找到了解决方案。只需使用ActiveXObject(“MSXML2.XMLHTTP.6.0”)代替IE9的XMLHttpRequest()来克服本地文件访问拒绝问题。

3 个答案:

答案 0 :(得分:4)

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

更新:

显然,chrome(和firefox)中的

Possible。至于IE,你可以阅读Mark of the Web

答案 1 :(得分:0)

据我所知,

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

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

  3. 对于IE,正如您似乎已经知道的那样,在最初声明AJAX对象时,您应该使用new ActiveXObject()代替。

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

  5. =============================================== ====================

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

答案 2 :(得分:0)

如果你正在使用requirejstext plugin,你所要做的就是将它添加到第一个require.config参数中:

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

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