跨源请求仅支持协议方案: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】:你必须在服务器上运行你的应用,使用 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
【讨论】:
【参考方案2】:出于测试/开发目的,最简单的解决方案是使用 firefox 浏览器。
【讨论】:
Firefox 也不允许加载本地文件:kb.mozillazine.org/Links_to_local_pages_don't_work【参考方案3】:默认情况下,几乎每个人都在 mac/linux 上安装了 python。谁没有,很容易得到它。
python -m SimpleHTTPServer
会给你一个本地服务器@http://localhost:8000。
从那里您可以访问您想要的应用程序的任何文件。
注意:python 3.0+ 版本使用python -m http.server
【讨论】:
【参考方案4】:或者您可以在 XAMPP 控制面板中运行像 Apache 和 mysql 这样的 Web 服务器。将您的文件夹放在 /xampp 文件夹中的 /htdocs 中,然后使用 localhost 在浏览器中运行您的代码。
【讨论】:
以上是关于跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https的主要内容,如果未能解决你的问题,请参考以下文章
json-server - 跨源请求仅支持协议方案:http、data、chrome、chrome-extension
AngularJS错误:仅支持协议方案的跨源请求:http,数据,chrome扩展,https