Analisis mendalam tentang jsonp protocol principle_json

WBOY
Lepaskan: 2016-05-16 15:38:02
asal
1956 orang telah melayarinya

Hari ini, dalam proses membangunkan penyahpepijatan bersama, kita perlu mendapatkan data merentas domain Kerana jquery digunakan, sudah tentu, menggunakan dataType:'jsonp' boleh menyelesaikan masalah dengan mudah.
Tetapi kerana bahagian belakang tidak menyokong akses jsonp pada masa itu, dia kemudian bertanya kepada saya apabila melaksanakan fungsi ini, apakah format yang dikembalikan dalam format jsonp? Saya hanya tahu cara menggunakannya, tetapi saya tidak dapat mengetahui jawapannya. . .

Walaupun selesai kemudian, saya yang suka menyelesaikan masalah, sentiasa bimbang tentangnya, saya mesti menelitinya dengan teliti, jadi saya mula membaca maklumat itu, dan saya merasakan pencerahan yang tiba-tiba selepas melihatnya, jadi saya. merancang untuk melakukannya Nota untuk dikongsi dengan semua orang.

Perbezaan antara JSON dan JSONP

Walaupun hanya terdapat satu perbezaan huruf antara JSON dan JSONP, mereka sebenarnya bukan perkara yang sama: JSON ialah format pertukaran data dan JSONP ialah protokol interaksi data merentas domain Perkara yang anda perolehi menggunakan kaedah JSONP masih Ia adalah data dalam format json.

Secara terus terang, 用JSON来传数据,靠JSONP来跨域.

JSONP menerangkan secara terperinci

Kita semua tahu, 一个页面的ajax只能获取和此页面同域的数据。, jadi apabila kita perlu mendapatkan data merentas domain, kita perlu menggunakan kaedah JSONP untuk mendapatkannya.

Seperti yang ditunjukkan dalam rajah di bawah, ia adalah mesej ralat yang dikembalikan dengan menggunakan format json untuk mendapatkan data merentas domain:

Jadi bagaimana untuk menyelesaikannya? Kasut kanak-kanak bahagian hadapan yang menggunakan rangka kerja mungkin mempunyai kaedah yang sepadan sebagai contoh, jquery boleh menyelesaikannya dengan hanya menambah dataType设为jsonp, tetapi apabila kita menggunakannya, pernahkah kita terfikir mengapa ia boleh diselesaikan dengan cara ini? Apakah idea utama?

Berikut ialah penjelasan terperinci untuk anda Idea pertama ialah menggunakan teg scirpt untuk memperkenalkan data merentas domain. Mari perlahan-lahan masuk ke proses jsonp dari awal.

Panduan Langkah 1

Tulisb.com/b.js Kandungan:

Salin kod Kod adalah seperti berikut:
alert('hello');

Kemudian tulis a.com/a.html kandungan:

Salin kod Kod adalah seperti berikut:
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan