在跨來源資源共享(CORS)中,網頁可以從另一個來源請求資源,通常涉及不同的網域、連接埠通常涉及不同的網域、連接埠、或協議。但是,預設情況下,出於安全考慮,瀏覽器會限制此類請求。
在給定場景中,使用者嘗試使用 CORS 從 www.siteone.com 向 www.sitetwo.com 發出 POST 請求。遇到的錯誤表示請求和回應標頭之間存在不符。
要正確配置 CORS,仔細處理它至關重要。以下 PHP 函數提供了更全面的方法:
<code class="php">// Allow from any origin if (isset($_SERVER['HTTP_ORIGIN'])) { header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Max-Age: 86400'); // cache for 1 day } // Access-Control headers are received during OPTIONS requests if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) header("Access-Control-Allow-Methods: GET, POST, OPTIONS"); if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); exit(0); } echo "You have CORS!";</code>
透過使用此增強功能取代原始程式碼,使用者成功解決了 CORS 問題。這種方法可確保正確設定所有必要的標頭,從而使跨來源請求能夠如預期運作。
以上是為什麼 CORS 在我的 PHP 應用程式中不起作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!