无法使用 Firefox 以外的 JavaScript 读取 XML 文件
Cannot read XML file using javascript other than Firefox
我使用以下代码读取外部xml文件:
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","myxmlfile.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
但是上面的代码似乎只适用于Firefox,而不适用于Chrome/IE/Opera。
在Chrome中,我在控制台中收到错误,因为不允许跨域访问,但是我的xml文件,js文件和html文件都位于本地硬盘驱动器的同一文件夹中。
对此有任何帮助吗?
谢谢。
您可能在没有 http 服务器的情况下在本地测试它。
从根本上说,ajax 请求必须使用相同的域发出,如果您向不同的站点发出 ajax 请求,它将被浏览器阻止(这是一项安全功能,以防止人们从其他网站读取浏览器所有者的数据)。大多数浏览器阻止访问本地文件系统的方式与防止(例如)恶意电子邮件附件的方式相同。您会收到类似 XMLHttpRequest cannot load file:///path/to/your/data.html. Origin null is not allowed by Access-Control-Allow-Origin.
如果您使用的是 Linux 或 Mac 或安装了 python,则启动 http 服务器的最简单方法是在 html 文件的根目录中使用命令 python -m SimpleHTTPServer
,那么您可以在 http://localhost:8000/file.html
查看它们,如果您使用的是 Windows,那么您可能需要配置 IIS(请记住,默认情况下 IIS 不支持某些文件扩展名,例如 .json
,因此您可能需要对其进行配置)。
如果您仍然希望/需要在本地进行测试而不必摆弄 http 服务器,那么您可以使用 --allow-file-access-from-files
运行 Chrome(将快捷方式更新到 Chrome exe 或使用此开关从终端运行 Chrome
如前所述,您需要将文件放入 http 服务器才能正确测试。您可以使用本地 Apache 实例来正确测试它。这样,您的 ajax 调用就不会被浏览器阻止。
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 通过传递图像的URL通过javascript读取/处理图像-类似于PHP中的file_get_contents
- 使用Javascript读取Webstorage表单数据
- 函数式javascript读取、异步、写入结果
- 使用Javascript读取CSS文件并动态更改页面
- 使用javascript读取和写入json文件
- 正在以javascript读取本地csv文件
- 用javascript读取文本文件的第一行
- 使用javascript读取本地XML文件并在html页面中显示
- 使用Javascript读取当前目录的文件名
- 从JavaScript读取动态内容
- 使用 javascript 读取.txt文件
- 使用 Javascript 读取目录的内容
- 使用 c# 编写 cookie,使用 javascript 读取
- 获取由 javascript 读取的数组文本字段值
- 使用 Javascript 读取文本文件
- 使用javascript读取文件
- 使用jQuery或JavaScript读取属性文件
- Json通过Javascript读取数据
- Javascript-读取文本框长度