允许 Google Chrome 使用 XMLHttpRequest 从本地文件加载 URL

IT技术 javascript jquery google-chrome xmlhttprequest local-files
2021-02-04 00:58:32

当尝试使用来自本地文件的 XMLHttpRequest 执行 HTTP 请求时,它基本上由于Access-Control-Allow-Origin违规而失败

但是,我自己使用的是本地网页,所以我想知道是否有任何方法可以让 Google Chrome 允许这些请求,这些请求是从本地文件到 Internet 上的 URL。

例如,$.get('http://www.google.com/')在本地文件中执行时失败,但我自己编写了页面脚本并且我自己正在使用它,所以如果我可以抑制它并加载 URL,这将非常有用。

那么,如何允许 Google Chrome 从本地文件使用 XMLHttpRequest 加载 URL?

4个回答

使用--disable-web-security开关是相当危险的为什么要完全禁用安全性,而您可以只允许 XMLHttpRequest 使用--allow-file-access-from-filesswitch从其他文件访问文件

在使用这些命令之前,请务必结束所有正在运行的 Chrome 实例。

在 Windows 上:

chrome.exe --allow-file-access-from-files

在 Mac 上:

open /Applications/Google\ Chrome.app/ --args --allow-file-access-from-files

关于Chrome的这个“特性”讨论

是否可以将其设为默认行为,而无需每次都打开终端/命令行或自定义快捷方式?
2021-03-18 00:58:32
万一别人是要试试这个:这个标志是提供/ modifyable在chrome://flags
2021-03-21 00:58:32
使用此实例浏览互联网是否安全?就我而言,当我在 Iceweasel 中打开同一个本地文件时,没有错误。它们没有与 Chrome 相同的安全检查?所以我猜在这个浏览器实例中上网还是可以的。
2021-03-29 00:58:32
@Kokodoko 我认为没有。
2021-04-04 00:58:32
@JoshH 我完全同意使用本地 Web 服务器进行网站开发然后直接通过浏览器访问本地文件要好得多。然而,确切的问题被问到了,我刚刚回答了它。
2021-04-05 00:58:32

启动镀铬 --disable-web-security

在 Windows 上:

chrome.exe --disable-web-security

在 Mac 上:

open /Applications/Google\ Chrome.app/ --args --disable-web-security

这将允许跨域请求。
我不知道这是否也适用于本地文件,但请告诉我们!

并提到,这正是您所期望的,它禁用了网络安全,所以要小心。

我在 Safari 10.1 上尝试了它,它给了我:XMLHttpRequest cannot load file:///<my_local_file>. Cross origin requests are only supported for HTTP.因此该线程中有关 Safari 浏览器的声明不再有效。
2021-03-12 00:58:32
@Tom - 只要您使用“file:///”协议而不是“ localhost ”,您应该可以在 Mac 上使用 Safari 执行此操作,而无需更改任何设置
2021-03-20 00:58:32
是的,我在 Windows 上,对此感到抱歉。现在就试试这个,谢谢。顺便说一句,当我的计算机打开时,我总是运行 Chrome,那么有没有办法只允许跨域请求与本地文件或仅在特定选项卡中?因为这样,我居然不能同时安全的上网……
2021-03-23 00:58:32
您还可以在 Mac 上使用 Safari。当从本地文件发出请求时,它默认允许对本地文件进行 AJAX。此外,关于“.exe”,Q 中没有提及 Windows。Pim 是 Windows 开发人员,但仍然没有提及 Windows。
2021-03-24 00:58:32
我刚刚下载了最新的 Chromium 版本,以便运行一个独立的、不安全的版本进行测试,以及“真实”的、安装的 Chrome 以进行安全的互联网浏览。它确实有效,谢谢!
2021-04-10 00:58:32

Mac版。从终端运行:

open /Applications/Google\ Chrome.app/ --args --allow-file-access-from-files
有一个更永久的解决方案会很好。这个假设用户事先知道并且还需要重新启动 chrome。
2021-03-26 00:58:32
这在当前版本的 Chrome 中似乎不再起作用。
2021-04-02 00:58:32

在 Ubuntu 上:

chromium-browser --disable-web-security

有关更多详细信息/开关:

http://peter.sh/experiments/chromium-command-line-switches/

引用自

我认为指定文件会更安全 ` google-chrome --allow-file-access-from-files ~/foo `
2021-03-14 00:58:32
这对于特定用例来说有点宽泛。但是无论如何都支持解决方案
2021-03-18 00:58:32