Dengan perkembangan pesat Internet mudah alih, semakin banyak tapak web mula menggunakan API Web untuk menyediakan perkhidmatan data. Apabila kami menggunakan API Web untuk mendapatkan data pada bahagian hadapan, kami biasanya menggunakan AJAX untuk membuat permintaan tak segerak. Walau bagaimanapun, disebabkan oleh sekatan dasar asal yang sama penyemak imbas, AJAX hanya boleh meminta data daripada pelayan asal yang sama, yang mengehadkan skop keupayaan bahagian hadapan untuk mendapatkan data.
Untuk menyelesaikan masalah merentas domain, teknologi jsonP wujud. Mari ketahui lebih lanjut tentang aplikasi jsonP dalam pemerolehan data bahagian hadapan.
1. Prinsip JSONP
JSONP (JSON dengan padding) ialah kaedah penghantaran data merentas domain dan mendapatkan data JSON dengan menambahkan teg skrip secara dinamik. Prinsip penggunaan JSONP di bahagian hadapan adalah seperti berikut:
Pertama, bahagian hadapan memulakan permintaan JSONP kepada pelayan dan alamat permintaan ialah alamat merentas domain. URL permintaan JSONP perlu mengandungi parameter panggil balik Bahagian belakang menjana data JSON respons berdasarkan parameter ini dan mengembalikannya ke bahagian hadapan dalam bentuk panggilan fungsi kemudian menghuraikan dan memproses data respons.
Proses khusus ditunjukkan dalam rajah di bawah:
2 Pelayan bertindak balas kepada permintaan JSONP
Tamat semasa memulakan permintaan JSONP dan pelayan perlu untuk. menjawab permintaan dengan betul. Untuk permintaan JSONP, pelayan perlu mengembalikan fungsi JavaScript dengan nama yang ditentukan dan memanggil data JSON yang dijana oleh pelayan apabila fungsi dipanggil. Berikut ialah contoh respons JSONP:
Untuk meringkaskan, pelayan perlu melaksanakan perkara berikut:
Apabila pelayan membalas permintaan JSONP dengan betul, bahagian hadapan perlu memproses data respons dengan betul. Perkara yang perlu dilakukan oleh bahagian hadapan adalah seperti berikut:
Buat fungsi dengan nama yang sama berdasarkan nama fungsi yang ditentukan oleh parameter panggil balikAkhir sekali, satu perkara yang perlu kita ambil perhatian ialah apabila membuat permintaan JSONP, kerana data respons akan dikembalikan dalam borang JavaScript, jika Jika data yang dikembalikan mengandungi pernyataan JavaScript, ia perlu dilepaskan, jika tidak, ia akan menjejaskan pelaksanaan kod bahagian hadapan. Fungsi melarikan diri biasa termasuk fungsi $.parseJSON() jQuery dan fungsi JSON.parse() JavaScript.
Bersambung...
Atas ialah kandungan terperinci php jsonp menukar data json. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!