首頁  >  文章  >  後端開發  >  為什麼 CORS 在我的 PHP 應用程式中不起作用?

為什麼 CORS 在我的 PHP 應用程式中不起作用?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-03 04:54:02189瀏覽

Why Is CORS Not Working in My PHP Application?

CORS 在PHP 中不工作

在跨來源資源共享(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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn