Rumah > pembangunan bahagian belakang > tutorial php > Cara API mengendalikan permintaan JSONP dan merentas tapak dalam PHP

Cara API mengendalikan permintaan JSONP dan merentas tapak dalam PHP

PHPz
Lepaskan: 2023-06-17 10:38:01
asal
1302 orang telah melayarinya

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 yang atribut srcnya ialah URL yang menunjuk ke API yang akan mengembalikan respons JSONP.

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;
}
?>
Salin selepas log masuk

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
?>
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan