Bagaimanakah PHP mengendalikan permintaan merentas domain dan kawalan akses?
Abstrak:
Dengan pembangunan aplikasi Internet, permintaan merentas domain dan kawalan akses telah menjadi isu penting dalam pembangunan PHP. Artikel ini akan memperkenalkan kaedah dan teknik tentang cara PHP mengendalikan permintaan merentas domain dan kawalan akses, bertujuan untuk membantu pembangun lebih memahami dan menangani isu ini.
2.1 JSONP (JSON dengan padding)
JSONP ialah penyelesaian kepada permintaan merentas domain, yang mana mencipta skrip secara dinamik tag untuk mendapatkan data. Data yang dikembalikan oleh pelayan perlu dibungkus dalam fungsi panggil balik Penyemak imbas melaksanakan fungsi panggil balik ini untuk mendapatkan data yang dikembalikan oleh pelayan.
2.2 CORS (Cross-Origin Resource Sharing)
CORS ialah mekanisme yang menyokong tetapan pada bahagian pelayan, membolehkan pelayan memberitahu penyemak imbas sumber mana yang dibenarkan oleh pelayan akses. Dalam PHP, kita boleh melaksanakan CORS dengan menetapkan maklumat pengepala respons.
3.1 Penyelesaian JSONP
PHP boleh menjana kod javascript yang mengandungi data secara dinamik berdasarkan parameter panggil balik yang dihantar oleh pelanggan, contohnya:
<?php $data = array('name' => 'John', 'age' => 18); $callback = $_GET['callback']; echo $callback . '(' . json_encode($data) . ')'; ?>
3.2 CORSPH solution
dilaksanakan dengan menetapkan maklumat pengepala respons, contohnya:
<?php header("Access-Control-Allow-Origin: http://example.com");// 允许http://example.com域名访问 header("Access-Control-Allow-Methods: GET, POST, OPTIONS");// 允许GET、POST、OPTIONS方法 header("Access-Control-Allow-Headers: Content-Type");// 允许Content-Type请求头 ?>
4.1 Bukti kelayakan
Jika anda perlu merentas domain Untuk menghantar bukti kelayakan (seperti kuki, maklumat pengesahan HTTP) dalam permintaan, anda perlu menetapkan "Access-Control-Allow-Credentials" kepada benar dan tetapkan "withCredentials" kepada benar pada bahagian permintaan.
4.2 Permintaan prapenerbangan (Preflight)
Apabila syarat berikut dipenuhi, penyemak imbas akan menghantar permintaan prapenerbangan (PILIHAN) untuk mendapatkan maklumat kebenaran pelayan:
Kod PHP perlu memproses permintaan prapenerbangan dan mengembalikan maklumat pengepala respons yang betul.
Atas ialah kandungan terperinci Bagaimanakah PHP mengendalikan permintaan merentas domain dan kawalan akses?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!