跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https

Posted

技术标签:

【中文标题】跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https【英文标题】:Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https 【发布时间】:2017-10-11 16:49:18 【问题描述】:

我在使用 chrome 和 IE 时遇到了这个问题。我已经开发了 html 播放器,我使用 XML 在该播放器中加载数据。所有页面都已通过 XML 访问。当我使用任何服务器在播放器中加载该数据时,它工作正常。我现在使用 WAMP 服务器。但现在我正在考虑将其制作为离线版本并将其写入 CD 中。但是当我在没有服务器的情况下直接打开我的 player.html 文件时,XML 数据不会加载。它在控制台中显示以下错误。

XMLHttpRequest 无法加载文件:///C:/wamp/www/TTT_BR/english.xml。。

【问题讨论】:

您的扩展是否在 chrome://extensions 页面上启用了文件复选框? @wOxxOm 我没有选中任何复选框。即使我没有添加任何可能影响离线加载我的 XML 的扩展。我已经使用 $ajax 加载方法来加载 XML 数据。当我使用 wamp 时它工作正常,但我无法在离线版本中看到访问该 XML 数据。 function loadXmlFile(selFile) $.ajax( url:selFile+'.xml', method:'GET', datatype:'xml', success:function(data) xmlDataLoad(data); ); 要查看复选框,首先在该页面上启用“开发者模式”。 @wOxxOm - 我已经检查了开发人员模式,但是仍然在控制台中抛出了一些错误。 jquery-1.11.3.js:9664 XMLHttpRequest 无法加载文件:///C:/wamp/www/TK_B00/english.xml。。 ​ "Cross origin requests are only supported for HTTP." error when loading a local file的可能重复 【参考方案1】:

或者您可以在 XAMPP 控制面板中运行 Apache 和 mysql 等 Web 服务器。将您的文件夹放在 /xampp 文件夹中的 /htdocs 中,然后使用 localhost 在浏览器中运行您的代码。

【讨论】:

【参考方案2】:

默认情况下,几乎每个人都在 mac/linux 上安装了 python。谁没有,很容易得到它。

python -m SimpleHTTPServer 会给你一个本地服务器@http://localhost:8000。 从那里您可以访问您想要的应用程序的任何文件。

注意:python 3.0+ 版本使用python -m http.server

【讨论】:

【参考方案3】:

出于测试/开发目的,最简单的解决方案是使用 firefox 浏览器。

【讨论】:

Firefox 也不允许加载本地文件:kb.mozillazine.org/Links_to_local_pages_don't_work【参考方案4】:

你必须在服务器上运行你的应用,使用 node js

1- 安装 NodeJS // 提示:如果你在 Mac 上,你想为此安装和使用 Homebrew

2- 打开你喜欢的终端模拟器

2- 通过运行安装 http-server:npm install http-server -g

3- 通过运行启动 http-server:http-server 'path/to/your/angular/root/directory' -o

最后一个命令——特别是 -o 标志——应该在以下位置打开一个浏览器窗口:localhost:8080

或// 使用 cd 找到您的目录 app 并使用此命令:http-server . -o

“。”表示你的当前目录

你可以看到:https://teamtreehouse.com/community/i-am-not-able-to-load-my-json-file

【讨论】:

以上是关于跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https的主要内容,如果未能解决你的问题,请参考以下文章

json-server - 跨源请求仅支持协议方案:http、data、chrome、chrome-extension

Django AJAX 错误:仅协议方案支持跨源请求

AngularJS错误:仅支持协议方案的跨源请求:http,数据,chrome扩展,https

跨源请求仅支持协议方案错误反应

XMLHttpRequest 跨源请求仅支持协议方案反过来服务器

XMLHttpRequest 跨源请求仅支持协议方案反过来服务器