XMLHttpRequest: Origin null is not allowed by Access-Control-Allow-Origin
Possible Duplicate:
XmlHttpRequest error: Origin null is not allowed by Access-Control-Allow-Origin
XMLHttpRequest cannot load file://… Origin null is not allowed by Access-Control-Allow-Origin
我正在尝试打开我的JSON文件,例如:
1 2 3 4 5 6
| jQuery.getJSON('../data/json/en/nodesData.json',
function(data){
jQuery.each(data, function(){
//do something...
})
}) |
这会在Chrome中产生以下错误:
XMLHttpRequest cannot load file:///C:/URL/data/json/en/nodesData.json. Origin null is not allowed by Access-Control-Allow-Origin
什么问题? 我怎样才能找回我的json?
-
此脚本是在本地计算机上还是在Web上的页面上?
-
我在我的本地机器上工作。我的应用程序基于Jquery
-
你可以在本地机器上安装网络服务器吗?这将使这项工作,让你的生活更轻松。 apachefriends.org/en/xampp.html
-
不,我不能,这不是我正在开发的项目的目标
-
你的目标是什么?因为如果它涉及AJAX调用,你将需要一个Web服务器。如果没有它,你将会遇到困难,就像你现在看到的那样。
-
我的目标是从利用变量的JSON文件中导入数据。我通过AJAX调用创建了一种方法来进行导入,但Chrome存在问题
-
@RocketHazmat我想强调加载本地JSON文件是一个合理的目标。我也想这样做,因为我想创建一个本地工作的webapp,它从JSON文件预加载数据。我现在遇到了与OP相同的问题。
-
@Marcel:这就是localStorage和/或IndexedDB的用途。如果Web浏览器在您不知情的情况下从您的硬盘驱动器加载任意文件,那么这将是一个主要的安全隐患。
-
@RocketHazmat不是"任意",而是在同一目录下的本地文件,从html文件加载,我只需双击即可。但是,谈论localStorage和IndexedDB,有没有办法准备这些。双击我的html页面之前?
-
@Marcel:您在代码之前在页面中准备它们。 (哦,还有文件系统API)
-
@Marcel:出于安全考虑,浏览器限制file:/// url做事。
您确实应该运行Apache或IIS等本地服务器来运行HTML / JavaScript代码,这样您就不会遇到这些限制。
您可以使用标志--allow-file-access-from-files启动浏览器,删除限制。
出于安全原因,您无法对本地文件系统进行AJAX调用。 有些浏览器允许这样做,但有些浏览器则不然 Chrome有一个启用此功能的标志,但默认情况下它已关闭。
-
配置Chrome是否可以接受此请求?
-
看到这个答案:stackoverflow.com/questions/3102819/
看看同源政策。
您无法加载该文件,因为从技术上讲,它位于另一个域中。 你需要像localhost//nodesData.json一样调用它。
-
我怎么能通过localhost打电话? 我没有服务器,我的应用程序基于Jquery
-
试试这个答案让它在chrome中工作......
-
不解决?:(
-
@Valeriane你看了我在上次评论中提供的链接并试图让它成为owrk吗?