我正在从本地文件进行jQuery ajax调用,该文件从网络服务器检索JSON数据:
$.ajax({
type: 'GET',
url: 'http://mywebsite.com/data.json',
dataType: 'json',
success: showData
});
我在chrome上遇到以下错误:
XMLHttpRequest cannot load http://mywebsite.com/data.json. No
'Access-Control-Allow-Origin' header is present on the requested
resource. Origin 'null' is therefore not allowed access.
我已经阅读了很多其他答案,这些答案似乎得出的结论是,您无法使用chrome从本地文件发出ajax请求,因此解决方案是:
但这些选项都不适合我。
但是,当我在另一个站点(myjson.com)上托管JSON数据时,ajax请求中的行读取
url: 'https://api.myjson.com/bins/myfile'
文件加载完美,数据正确显示。
为什么ajax请求允许'myjson.com'而不是'mywebsite.com'?
编辑:
我有一行
Header set Access-Control-Allow-Origin "*"
在我的apache2.conf文件中
答案 0 :(得分:0)
您需要做的是在文档根目录中创建一个.htaccess
文件,并为其添加以下行:
<FilesMatch "\.(json)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
上述内容的作用是,它们允许.json文件上所有域的跨域资源共享,从而消除错误。