XMLHttpRequest无法加载文件:// ... Access-Control-Allow-Origin不允许Origin null [关闭]
Posted
技术标签:
【中文标题】XMLHttpRequest无法加载文件:// ... Access-Control-Allow-Origin不允许Origin null [关闭]【英文标题】:XMLHttpRequest cannot load file://... Origin null is not allowed by Access-Control-Allow-Origin [closed] 【发布时间】:2011-09-22 17:00:47 【问题描述】:我看到之前有人问过上面的问题,但是即使在参考了他们之后,我也无法为我找到一个方法,因此我冒昧地为这个问题开始了一个新的帖子。
我有一个包含以下代码的 getjson.html 文件
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function()
$("button").click(function()
$.getJSON("json_data.txt",function(result)
$.each(result, function(i, field)
$("div").append(field + " ");
);
);
);
);
</script>
</head>
<body>
<button>Get JSON data</button>
<div></div>
</body>
</html>
json_data.txt 包含以下内容,
"firstName": "John",
"lastName": "Doe",
"age": 25
当我在浏览器中打开 getjson.html 文件时,报错:
“XMLHttpRequest 无法加载文件://..... Access-Control-Allow-Origin 不允许 Origin null。”
有人请就这个问题提出一个简单的解决方案,我如何才能让这件事成为可能。
P.S:我正在编写一个网络应用程序。
【问题讨论】:
是的,我在 Web 服务器上运行一切。如果我只是做 serveFile("somefile.hmtl") 这件事可能吗 所以如果我使用网络服务器提供上述文件,它不会给出任何错误? 【参考方案1】:您是直接打开 HTML 文件吗?该文件需要放置在 Web 服务器上然后执行。通常,出于安全原因,浏览器不允许使用 file:///
协议进行 AJAX 调用。
【讨论】:
【参考方案2】:我读到你的问题有点晚了(2013 年春季),并认为我找到了解决文件:// 上下文中 CORS XHR 跨域限制的解决方案!
我已将此标头放在我的远程 php 脚本中:
header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);
它似乎工作!更多解释在这里:Rannpháirtí anaithnid/CORS
它可能适用于“电话间隙”应用程序,而不是使用 jquery 和 jsonp?
【讨论】:
以上是关于XMLHttpRequest无法加载文件:// ... Access-Control-Allow-Origin不允许Origin null [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 WKWebView 通过 XMLHttpRequest 加载音频文件
XMLHttpRequest无法加载文件:// ... Access-Control-Allow-Origin不允许Origin null [关闭]
XMLHttpRequest 无法加载 https://[website].com 不支持跨域请求
XMLHttpRequest 无法加载 - Meteor 和 FSCollection 没有“Access-Control-Allow-Origin”