我正在嘗試為開發設定沙盒 API,以便用戶可以從本地開發機器上訪問 API。但是我遇到了我認為是 CORS 的問題。
起初,所有流量都被 CORS 策略阻止,因此我將以下內容添加到我的.htaccess檔案中:
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "origin, x-requested-with, content-type"
Header set Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
之后,我可以看到我不僅獲得了 200 狀態,而且我的有效負載也被正確發送。好東西!


但是 .. 請求的 PHP 檔案 ->/myp/index.php僅包含以下內容:
<?php
print_r ($_POST);
echo "Done";
來自上述 POST 的回應又回來了:
Array
(
)
Done
我讀過很多帖子都說了同樣的話:將以下內容添加到 PHP 檔案中:
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS");
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, X-Auth-Token, Accept");
header ("Access-Control-Expose-Headers: Content-Length, X-JSON");
但是當我將它添加到 PHP 檔案中時..我得到另一個 CORS 錯誤..
將 CORS 規則應用于 PHP 檔案

我還需要看什么?為什么當我將 PHP 標頭放入時 CORS 被拒絕,但沒有它們就可以?為什么當 CORS 顯示 a200并且我可以驗證發送的帖子資料時 PHP 不接受 POST 變數?
uj5u.com熱心網友回復:
來自上述 POST 的回應又回來了:
關鍵是您確實收到了回應并且您沒有收到 CORS 錯誤。
所以問題不在于 CORS,您不應該觸摸您的 CORS 標頭。
(當您使用 PHP 添加標頭時,Apache 會將它們與您告訴它添加的標頭合并,您最終會得到Access-Control-Allow-Origin: *, *,如錯誤訊息所述,這是無效的)。
如果 $_POST 超全域為空,那是因為您沒有以 PHP 將自動解碼的格式發布資料。
最有可能的是,您正在發送 JSON 有效負載,在這種情況下,您需要從 STDIN 讀取正文并自行決議,或者將您發送的資料更改為 PHP 支持的格式(URL 編碼或多部分編碼)。
const body = new URLSearchParams({ foo: 1, bar: "hello, world" });
const url = "http://example.com";
const response = await fetch(url, { body });
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/511389.html
標籤:php邮政
上一篇:如何在Wordpress中使用“Id”更改編輯url以使用“Slug”編輯url
下一篇:特快專遞請求給{}
