我知道存在起源问题,但在这里设置Web服务器不是一个选项。Firefox v14 加载本地文件没有问题。Chrome 在添加"--允许文件从文件访问"后没有问题有没有办法修复IE9?谢谢
编辑:我想出了解决方案。只需使用 ActiveXObject("MSXML2.XMLHTTP.6.0") 而不是 XMLHttpRequest() for IE9 以克服本地文件访问拒绝问题。
阿贾克斯与否。HTTP 是一种客户端-服务器应用程序协议。没有服务器,这是不可能的。
更新:
显然可以在铬(和火狐)中。至于IE,你可以在Mark of the Web上阅读。
据我所知,
-
考虑到安全问题,javascript最好不要访问本地文件。所以它不能是标准的。
-
在 AJAX 中,有各自的方法可以访问各个浏览器的本地文件。
-
对于IE,您似乎已经知道,在最初声明AJAX对象时,您应该改用
new ActiveXObject()
。 -
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库使用类似的语法。发人深思的东西。