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

pim*_*vdb 120 javascript jquery google-chrome xmlhttprequest local-files

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

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

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

那么,我如何允许Google Chrome使用本地文件中的XMLHttpRequest加载网址?

Kon*_*nin 225

使用--disable-web-security开关非常危险!为什么在允许XMLHttpRequest使用--allow-file-access-from-filesswitch 访问其他文件中的文件时,为什么要禁用安全性呢?

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

在Windows上:

chrome.exe --allow-file-access-from-files
Run Code Online (Sandbox Code Playgroud)

在Mac上:

open /Applications/Google\ Chrome.app/ --args --allow-file-access-from-files
Run Code Online (Sandbox Code Playgroud)

讨论Chrome 的这个"功能":

  • 如果其他人想要尝试这个:这个标志在`chrome:// flags`中是*不可用/可修改的 (9认同)
  • @pimvdb我认为你应该把这个标记为已接受的答案. (4认同)
  • 是否可以将此作为默认行为,而无需每次都打开终端/命令行或自定义快捷方式? (3认同)
  • @JoshH 我完全同意使用本地 Web 服务器进行网站开发然后直接通过浏览器访问本地文件要好得多。然而,确切的问题被问到了,我刚刚回答了它。 (2认同)
  • 使用此实例浏览互联网是否安全?就我而言,当我在 Iceweasel 中打开同一个本地文件时,没有错误。它们没有与 Chrome 相同的安全检查?所以我猜在这个浏览器实例中上网还是可以的。 (2认同)

jAn*_*ndy 46

启动镀铬 --disable-web-security

在Windows上:

chrome.exe --disable-web-security
Run Code Online (Sandbox Code Playgroud)

在Mac上:

open /Applications/Google\ Chrome.app/ --args --disable-web-security
Run Code Online (Sandbox Code Playgroud)

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

并且提到,这完全符合您的预期,它会禁用 Web安全性,因此请小心.

  • 我在 Safari 10.1 上尝试过,它给了我:`XMLHttpRequest 无法加载 file:///<my_local_file>。跨源请求仅支持 HTTP。`因此来自该线程的关于 Safari 浏览器的声明不再有效。 (4认同)

Nek*_*Nek 21

Mac版.从终端运行:

open /Applications/Google\ Chrome.app/ --args --allow-file-access-from-files
Run Code Online (Sandbox Code Playgroud)

  • 说得通。我已经编辑了答案。 (2认同)

Tai*_*aiz 6

在 Ubuntu 上:

chromium-browser --disable-web-security
Run Code Online (Sandbox Code Playgroud)

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

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

引用自

  • 我认为指定文件会更安全 ` google-chrome --allow-file-access-from-files ~/foo ` (3认同)