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

How to enable loading local file using ajax in IE9

本文关键字:加载 启用 文件 ajax IE9      更新时间:2023-09-26

我知道存在起源问题,但在这里设置Web服务器不是一个选项。Firefox v14 加载本地文件没有问题。Chrome 在添加"--允许文件从文件访问"后没有问题有没有办法修复IE9?谢谢


编辑:我想出了解决方案。只需使用 ActiveXObject("MSXML2.XMLHTTP.6.0") 而不是 XMLHttpRequest() for IE9 以克服本地文件访问拒绝问题。

阿贾克斯与否。HTTP 是一种客户端-服务器应用程序协议。没有服务器,这是不可能的

更新:

显然可以在铬(和火狐)中。至于IE,你可以在Mark of the Web上阅读。

据我所知,

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

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

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

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

====

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

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

如果您使用的是requirejs的文本插件,您所要做的就是将其添加到第一个require.config参数中:

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

也许其他JS库使用类似的语法。发人深思的东西。