Memandangkan semakin banyak aplikasi web mula menyokong permintaan merentas tapak dan teknologi JSONP, pereka API dalam PHP mesti mempertimbangkan cara mengendalikan permintaan ini. Dalam artikel ini, kami akan meneroka cara mengendalikan JSONP dan permintaan merentas tapak dalam PHP.
Pertama, mari kita lihat JSONP. JSONP (JSON dengan Padding) ialah teknologi yang membenarkan permintaan merentas domain untuk data antara pelanggan dan pelayan. Ia melakukan ini dengan menggunakan kod JavaScript untuk membuat teg
Untuk menyokong JSONP, kami perlu menambahkan beberapa kod pada API. Mula-mula, kita perlu menyemak sama ada permintaan API disertakan dengan parameter "panggilan balik", yang menentukan nama fungsi panggil balik yang akan dilaksanakan pada klien. Jika parameter ini wujud, kita perlu menggunakan fungsi panggil balik dalam respons untuk membungkus respons JSON. Dengan cara ini, kod JavaScript pihak pelanggan boleh membaca dan memproses respons dengan mudah tanpa perlu risau tentang sekatan merentas domain.
Berikut ialah kod contoh PHP yang menunjukkan cara menyokong JSONP:
<?php $data = array('name' => 'John', 'age' => 30); $json = json_encode($data); if(isset($_GET['callback'])){ echo $_GET['callback'] . '(' . $json . ')'; } else { echo $json; } ?>
Dalam contoh di atas, jika permintaan API mengandungi parameter "panggilan balik", respons JSONP akan dikembalikan; , respons JSON dikembalikan .
Sekarang, mari kita lihat cara mengendalikan permintaan merentas tapak. Cross-Origin Resource Sharing (CORS) ialah teknologi yang membenarkan permintaan merentas domain antara penyemak imbas klien dan pelayan. Dengan menggunakan CORS, kami boleh meminta kod JavaScript pihak pelanggan mengambil data daripada API domain lain tanpa memerlukan pelayan proksi atau penyelesaian lain.
Mendayakan CORS dalam PHP adalah mudah, kami hanya perlu menambah beberapa maklumat pada pengepala respons. Contohnya:
<?php header("Access-Control-Allow-Origin: *"); //允许所有域名 header("Access-Control-Allow-Methods: GET, POST"); //允许的HTTP方法 header("Access-Control-Allow-Headers: Content-Type"); //允许客户端发送的Header ?>
Dalam contoh di atas, kami menambah "Access-Control-Allow-Origin", "Access-Control-Allow-Methods" dan "Access-Control-Allow-Headers" pada pengepala respons Dayakan CORS. Dengan cara ini, pelanggan boleh mendapatkan data daripada mana-mana nama domain, dan kaedah HTTP serta pengepala juga dihadkan.
Ringkasnya, pereka bentuk API dalam PHP perlu mempertimbangkan cara menyokong JSONP dan CORS supaya kod JavaScript pihak pelanggan boleh mendapatkan data daripada nama domain lain. Kedua-dua JSONP dan CORS menyediakan kaedah permintaan merentas tapak yang selamat dan boleh dipercayai, dan boleh menjadikan kod pelanggan lebih fleksibel, lebih mudah untuk dibangunkan dan diselenggara.
Atas ialah kandungan terperinci Cara API mengendalikan permintaan JSONP dan merentas tapak dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!