Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa CORS tidak berfungsi dalam aplikasi PHP saya walaupun menetapkan tajuk Access-Control-Allow-Origin?

Mengapa CORS tidak berfungsi dalam aplikasi PHP saya walaupun menetapkan tajuk Access-Control-Allow-Origin?

DDD
DDDasal
2024-11-03 04:55:02355semak imbas

Why is CORS not working in my PHP application despite setting Access-Control-Allow-Origin headers?

CORS tidak berfungsi dalam PHP

Apabila cuba menghantar permintaan POST dengan data borang daripada www.siteone.com ke www.sitetwo. com menggunakan CORS, ralat berikut ditemui:

XMLHttpRequest cannot load http://www.sitetwo.com/cors.php. Origin http://www.siteone.com is not allowed by Access-Control-Allow-Origin.

Walaupun mengkonfigurasi pengepala CORS dalam cors.php pada www.sitetwo.com:

<code class="php">header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');</code>

Permintaan masih gagal kerana kepada pelaksanaan konfigurasi pengepala yang tidak betul. Kod dikemas kini yang menangani isu ini ialah:

<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>

Kod yang disemak ini bertindak balas kepada pengepala Kawalan Akses yang diterima semasa permintaan OPTIONS dan membenarkan permintaan dari mana-mana asal, membenarkan CORS berfungsi dengan betul.

Atas ialah kandungan terperinci Mengapa CORS tidak berfungsi dalam aplikasi PHP saya walaupun menetapkan tajuk Access-Control-Allow-Origin?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn