CORS 策略:JSON 文件不支持“Access-Control-Allow-Origin”

CORS 策略:JSON 文件不支持“Access-Control-Allow-Origin”

我在服务器 A 中保存了一个 JSON 文件,ip:111.111.111.111/folder1/a.json

从服务器 B [ ip: 444.444.444.444 ],我尝试访问该 JSON 文件,收到以下结果:

访问 XMLHttpRequest 'http://111.111.111.111/a.json' 来自起源 'http://444.444.444.444' 已被 CORS 策略阻止:请求的资源上不存在 'Access-Control-Allow-Origin' 标头。

我在 111.111.111.111/index.php 中编写了以下代码,但收到了同样的错误:

<?php

Access-Control-Allow-Origin: "http://444.444.444.444"
Access-Control-Allow-Origin: *
Header set Access-Control-Allow-Origin: *

?>

使用以下 JavaScript 代码访问 JSON:

$.getJSON("http://111.111.111.111/folder1/a.json", (data) => {  }

答案1

您的访问控制策略需要在与请求的资源相同的 URL 上设置。

我的意思是,如果您要请求访问/folder1/a.json,则需要在该特定 URL 的请求上设置访问控制标头。

您可以通过您的服务器(Apache / Nginx / ...)添加这些标题,或者创建一个像您制作的一样的 php 脚本来设置这些标题并返回 json 文件内容(即/folder1/a.json.php)。

顺便说一句,你的代码不是有效的 PHP,请使用header(...)功能。

您可以使用这样的脚本:

<?php
    header('Access-Control-Allow-Origin: http://444.444.444.444/*');
    header('Content-Type: application/json; charset=utf-8');
    die(file_get_contents('a.json'));
?>

相关内容