Rumah >pembangunan bahagian belakang >tutorial php >Mengapa CORS Tidak Berfungsi dalam Aplikasi PHP Saya?

Mengapa CORS Tidak Berfungsi dalam Aplikasi PHP Saya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 04:54:02272semak imbas

Why Is CORS Not Working in My PHP Application?

CORS Tidak Berfungsi dalam PHP

Dalam perkongsian sumber silang asal (CORS), halaman web boleh meminta sumber daripada asal lain, biasanya melibatkan domain, port, atau protokol. Walau bagaimanapun, secara lalai, penyemak imbas mengehadkan permintaan sedemikian kerana kebimbangan keselamatan.

Dalam senario yang diberikan, pengguna sedang mencuba permintaan POST daripada www.siteone.com ke www.sitetwo.com menggunakan CORS. Ralat yang dihadapi menunjukkan bahawa terdapat ketidakpadanan antara pengepala permintaan dan respons.

Untuk mengkonfigurasi CORS dengan betul, adalah penting untuk mengendalikannya dengan berhati-hati. Fungsi PHP berikut menyediakan pendekatan yang lebih komprehensif:

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

Dengan menggantikan kod asal dengan fungsi yang dipertingkat ini, pengguna berjaya menyelesaikan isu CORS. Pendekatan ini memastikan semua pengepala yang diperlukan ditetapkan dengan sewajarnya, membolehkan permintaan silang asal berfungsi seperti yang dimaksudkan.

Atas ialah kandungan terperinci Mengapa CORS Tidak Berfungsi dalam Aplikasi PHP Saya?. 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