Rumah >hujung hadapan web >tutorial js >JSONP lwn. CORS: Bilakah JSONP Masih Relevan untuk Pertukaran Data Merentas Domain?
Apakah itu JSONP?
JSONP atau "JSON dengan padding," ialah teknik yang membolehkan pertukaran data JSON merentas domain yang berbeza. Ini amat berguna apabila aplikasi web pada satu domain perlu mengakses data daripada pelayan pada domain lain.
Mengapa JSONP Dicipta?
Permintaan merentas domain lazimnya tidak dibenarkan oleh penyemak imbas kerana kebimbangan keselamatan. Walau bagaimanapun, JSONP mengatasi had ini dengan menggunakan teg skrip, yang tidak tertakluk kepada sekatan yang sama.
Cara JSONP Berfungsi
Untuk mendayakan JSONP, parameter panggil balik disertakan dalam URL permintaan. Parameter ini menentukan fungsi pada bahagian klien yang akan mengendalikan data JSON yang diterima.
Pelayan bertindak balas dengan data JSON yang disertakan dalam panggilan fungsi, menggunakan fungsi panggil balik yang ditetapkan. Contohnya, jika parameter panggil balik ialah "myCallback," respons pelayan mungkin kelihatan seperti ini:
myCallback({ foo: 'bar' });
Kelebihan dan Had JSONP
JSONP menyediakan mudah cara untuk membuat permintaan merentas domain. Walau bagaimanapun, ia mempunyai beberapa had:
Alternatif kepada JSONP
CORS (Perkongsian Sumber Silang Asal) ialah pendekatan yang lebih selamat dan moden untuk permintaan merentas domain. Ia memberikan kawalan terperinci ke atas permintaan dan lebih disukai berbanding JSONP dalam kebanyakan kes.
Kesimpulan
JSONP ialah penyelesaian yang bijak untuk memudahkan permintaan merentas domain apabila CORS tidak disokong secara meluas. Walau bagaimanapun, dengan adanya CORS, secara amnya disyorkan untuk menggunakan CORS kerana ia menawarkan keselamatan dan kawalan yang unggul. Namun begitu, JSONP kekal sebagai teknik yang berguna dalam situasi tertentu, terutamanya untuk menyokong pelayar lama.
Atas ialah kandungan terperinci JSONP lwn. CORS: Bilakah JSONP Masih Relevan untuk Pertukaran Data Merentas Domain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!