首页 > 解决方案 > 使用 file:// 协议时使用 javascript 请求文件

问题描述

我有一个小型 Web 应用程序,它使用 XML 文件中的数据进行显示。它基本上只有3个文件:

app.html
logic.js
data.xml

javascript 文件加载 XML 数据并对其进行处理:

$.get('data.xml', {}, processResult);

我希望这个小应用程序能够在使用file://协议在本地启动时运行。但是我收到以下错误:

从源“null”访问“file:///C:/.../data.xml”的 XMLHttpRequest 已被 CORS 策略阻止:跨源请求仅支持协议方案:http、data、chrome、chrome -扩展,铬不受信任,https。

基本上我需要一种 javascript 来请求同一目录中的另一个文件的方法。这可能吗?我可以对 JS 或 HTML 文件进行任何更改,但 XML 文件来自供应商,每次修改它会很痛苦(例如,将其包装在 JSON 或 JSONP 中)。

标签: javascriptajax

解决方案


大多数现代浏览器都有一个安全策略,不允许您通过以下方式在 javascript 中执行某些操作file://

如果你想在本地运行你的应用程序,你可以在 node、go 或其他任何东西中编写一个简单的 http 服务器,或者只安装一个,比如https://www.npmjs.com/package/http-server

然后你可以通过http://localhost:


推荐阅读