Chrome 中的“Access-Control-Allow-Origin 不允许 Origin null”。为什么?

IT技术 javascript google-chrome xmlhttprequest cross-domain
2021-03-01 05:11:41

我正在研究一些 Javascript 以在我的 PC 上本地运行。我正在使用 jQuery CSV 插件 (http://plugins.jquery.com/project/csv) 将 csv 文件加载到 javascript 数组中。脚本很简单:

$(function(){
 $.get("file.csv", function(data){
  stuff = $.csv()(data);
 })
})

在 Firefox 中它工作正常,但在 Chrome 中它说“Access-Control-Allow-Origin 不允许 Origin null”。这意味着什么?我找到了与此错误相关的跨服务器内容的各种线程,但我只是在处理本地文件。

4个回答

Chrome 不相信任何两个本地文件之间存在任何共同关系。

您可以使用“--allow-file-access-from-files”选项启动它,告诉它您不同意。

感谢上升大师 Nick Craver 在我前段时间问基本相同的问题时提供的信息。

确保您已关闭正在运行的每个 chrome 实例,否则它不会接受更改。所以只要确保进程列表中没有 chrome.exe
2021-04-21 05:11:41
唔。我尝试了你所说的但仍然得到同样的错误。也许我启动 Chrome 错了?
2021-04-23 05:11:41
@user1028100 我不知道,如果无法从命令行在 MacOS 上启动 Chrome,或者该选项不起作用。
2021-05-03 05:11:41
我能够使用命令“/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --allow-file-access-from-files”打开带有该标志的chrome。我在 OSX 10.7.4 (lion) 上。请参阅superuser.com/questions/157484/...
2021-05-09 05:11:41
多亏了 chrismarx,如果您对开发工作很感兴趣,就应该指出这一点。这很简单,但如果你忘记它,那真的会搞砸你的一天。
2021-05-13 05:11:41

如果您使用的是 Mac OS X,请打开终端cd到您的 Web 根目录并运行:

python -m SimpleHTTPServer

然后在 Chrome(或任何其他网络浏览器)中打开以下 URL:

http://0.0.0.0:8000
也适用于 Linux。对于那些需要快速网络服务器的人来说,这是一个很好的解决方案。
2021-04-22 05:11:41
作品!。谢谢。对于 MAC OS X 是更好的解决方案。
2021-04-27 05:11:41

这就像出于某种不明原因的跨域(每个浏览器在这个问题上的行为略有不同,您甚至可以尝试 IE 并查看结果)。您应该尝试通过 Web 服务器运行它,并给它一个绝对路径,因为 javascript 在本地运行。

您可以尝试在您的 apache 网络服务器上运行它。它会起作用。

这应该是评论...
2021-04-28 05:11:41