Cross-Origin Resource Sharing (CORS) ialah teknologi web yang membenarkan penyemak imbas menghantar permintaan AJAX ke domain yang berbeza apabila meminta sumber. Apabila menggunakan perkhidmatan web, CORS membenarkan penyemak imbas meminta data daripada domain lain. Artikel ini akan memperkenalkan cara menyediakan akses merentas domain dalam projek PHP.
Apakah itu merentas domain?
Rentas domain, dalam pembangunan web, ialah apabila skrip yang dilaksanakan oleh penyemak imbas cuba mengakses asal yang berbeza daripada pelayan asal halaman. Contohnya, pada halaman web www.example.com, jika skrip cuba mengakses pelayan http://www.example.org, ia dipanggil permintaan merentas domain.
Mengapa kita perlu menyediakan merentas domain?
Pelayar web melaksanakan Dasar Asal Sama, iaitu dasar keselamatan web asas yang mengehadkan skrip untuk hanya mengakses kandungan dari tapak asal yang sama. Tapak homolog merujuk kepada tapak dengan protokol , nama domain dan port yang sama. Tanpa sekatan dasar asal yang sama, permintaan merentas domain boleh menyerang akaun pengguna dengan mudah. Contohnya, jika anda membeli buku dalam talian, skrip berniat jahat boleh mengakses akaun anda dengan mudah daripada domain lain dan menggunakan akaun anda untuk membuat pembayaran.
Bagaimana untuk menyediakan merentas domain?
Dalam projek PHP, anda boleh membina permintaan silang asal (CORS) dengan menetapkan pengepala respons.
Menetapkan pengepala respons "Access-Control-Allow-Origin", yang membenarkan permintaan daripada domain. Sebagai contoh, jika permintaan AJAX memerlukan penghantaran permintaan daripada "http://localhost:3000", maka anda boleh menambah baris berikut pada pengepala respons pelayan.
header("Access-Control-Allow-Origin:http://localhost:3000");
Menetapkan Allow-Origin membenarkan permintaan merentas domain untuk nama domain dan Access-Control-Allow juga memerlukan untuk ditetapkan. -Tajuk untuk membenarkan pengepala permintaan tersuai. Sebagai contoh, jika permintaan AJAX ingin menghantar pengepala permintaan tersuai "X-Custom-Header", anda perlu menambah baris berikut pada pengepala respons.
header("Access-Control-Allow-Headers: X-Custom-Header");
Access-Control-Allow-Methods menentukan kaedah permintaan yang dibenarkan, cuma tambahkan perkara berikut pada pengepala respons OK, sebagai contoh, persediaan contoh ini membenarkan kedua-dua kaedah GET dan POST.
header('Access-Control-Allow-Methods: GET, POST');
Jika kuki perlu dihantar, Access-Control-Allow-Credentials hendaklah ditetapkan kepada "true". Sebagai contoh, minta penyemak imbas untuk meminta kuki.
header('Access-Control-Allow-Credentials: true');
Ringkasan
Melaksanakan permintaan merentas domain (CORS) dalam projek PHP memerlukan pengepala respons, dengan menetapkan Access-Control-Allow-Origin, Access-Control-Allow-Header, Pengepala respons utama seperti Access-Control-Allow-Methods dan Access-Control-Allow-Credentials membolehkan penyemak imbas membenarkan permintaan merentas domain apabila menghantar permintaan.
Atas ialah kandungan terperinci Bagaimana untuk menyediakan projek php merentas domain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!