在我的网络服务器上,我有一个文件夹(比如链接:www.foo.com/json /)。
在这个链接里面,我有一个json文件,比如foo.json。我想从其他网站访问此文件。我试图研究“CORS”,但它似乎很复杂,我在我的网站foo.com上没有使用任何后端。我听说你可以简单地使用php并将其放入:
<?php
header("Access-Control-Allow-Origin: *");
如何将其添加到具有.json的文件夹中,以便我这样做:
$.getJSON("http://foo.com/json/foo.json", function(json) {
console.log(json
)});
它不会抛出错误。我希望这很容易让任何网站都这样做,我只是不知道如何连接它。
答案 0 :(得分:9)
选项1:使用PHP
您无法将其添加到.json文件中。您需要创建一个返回JSON数据的php文件。一个粗略的例子可能是:
/json/index.php?f=foo
header("Access-Control-Allow-Origin: *");
header("content-type: application/json");
echo file_get_contents($_REQUEST['f'].".json");
这将允许您设置Access-Control-Allow-Origin标头并将所需的json文件内容返回到远程调用:
$.getJSON("http://foo.com/json/index.php?f=foo", function(json) {
console.log(json);
});
选项2:使用服务器配置
另一种选择是配置标头以应用于服务器配置中的json文件。使用Apache2,您可以将以下内容添加到服务器配置中,或在/ json目录中创建.htaccess文件以包含:
<Files "*.json">
Header set Access-Control-Allow-Origin "*"
</Files>
这将自动包含所有json文件的标题。
答案 1 :(得分:1)
不要直接访问JSON文件,在中间使用PHP页面。所以你打电话给www.foo.com/json/,它将运行该文件夹中的默认PHP文件(比如index.php)。现在这个PHP页面将像你提到的那样设置CORS头 标题(&#34; content-type:application / json&#34;);
header("Access-Control-Allow-Origin: *");
然后读取JSON文件并将其与正确的MIME类型一起添加到响应中:
header("content-type: application/json");