Php

CORS 政策:JSON 文件沒有“訪問控制允許來源”

  • August 2, 2019

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

從伺服器 B

$$ ip : 444.444.444.444 $$,我正在嘗試訪問該 JSON 文件,我收到以下結果:

從源“ http://444.444.444.444 ”訪問“ http://111.111.111.111/a.json ”中的 XMLHttpRequest已被 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) => {  }

您的訪問控制策略需要設置在與請求的資源相同的 URL 上。

我的意思是,如果您要請求訪問/folder1/a.json,則需要在針對此特定 URL 的請求上設置 Access-Control 標頭。

您可以通過您的伺服器(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'));
?>

引用自:https://serverfault.com/questions/977719