Format bijaksana, jenis file bijaksana dan penggunaan praktis bijaksana?
json
jsonp
javascript
Mohammad
sumber
sumber
Jawaban:
JSONP adalah JSON dengan bantalan. Artinya, Anda meletakkan string di awal dan sepasang tanda kurung di sekitarnya. Sebagai contoh:
Hasilnya adalah Anda dapat memuat JSON sebagai file skrip. Jika sebelumnya Anda mengatur fungsi yang dipanggil
func
, maka fungsi itu akan dipanggil dengan satu argumen, yaitu data JSON, ketika file skrip selesai dimuat. Ini biasanya digunakan untuk memungkinkan lintas situs AJAX dengan data JSON. Jika Anda tahu bahwa example.com melayani file JSON yang terlihat seperti contoh JSONP yang diberikan di atas, maka Anda dapat menggunakan kode seperti ini untuk mengambilnya, bahkan jika Anda tidak berada di domain example.com:sumber
Pada dasarnya, Anda tidak diizinkan untuk meminta data JSON dari domain lain melalui AJAX karena kebijakan asal-sama. AJAX memungkinkan Anda untuk mengambil data setelah halaman dimuat, dan kemudian menjalankan beberapa kode / fungsi panggilan setelah kembali. Kami tidak dapat menggunakan AJAX tetapi kami diizinkan untuk menyuntikkan
<script>
tag ke halaman kami sendiri dan mereka diizinkan untuk referensi skrip yang dihosting di domain lain.Biasanya Anda akan menggunakan ini untuk memasukkan perpustakaan dari CDN seperti jQuery . Namun, kami dapat menyalahgunakan ini dan menggunakannya untuk mengambil data sebagai gantinya! JSON sudah merupakan JavaScript yang valid ( sebagian besar ), tetapi kami tidak bisa hanya mengembalikan JSON dalam file skrip kami, karena kami tidak memiliki cara untuk mengetahui kapan script / data selesai dimuat dan kami tidak memiliki cara mengaksesnya kecuali itu ditugaskan ke suatu variabel atau diteruskan ke suatu fungsi. Jadi yang kami lakukan adalah memberi tahu layanan web untuk memanggil fungsi atas nama kami ketika sudah siap.
Misalnya, kami dapat meminta beberapa data dari API pertukaran saham, dan bersama dengan parameter API kami yang biasa, kami memberikannya panggilan balik, seperti
?callback=callThisWhenReady
. Layanan web maka membungkus data dengan fungsi dan mengembalikannya seperti ini:callThisWhenReady({...data...})
. Sekarang begitu skrip dimuat, browser Anda akan mencoba untuk mengeksekusinya (seperti biasa), yang pada gilirannya memanggil fungsi sewenang-wenang kami dan memberi kami data yang kami inginkan.Ini berfungsi seperti permintaan AJAX normal kecuali alih-alih memanggil fungsi anonim, kita harus menggunakan fungsi bernama.
jQuery sebenarnya mendukung ini dengan mulus untuk Anda dengan membuat fungsi bernama unik untuk Anda dan meneruskannya, yang kemudian akan menjalankan kode yang Anda inginkan.
sumber
JSONP memungkinkan Anda untuk menentukan fungsi panggilan balik yang dilewatkan objek JSON Anda. Ini memungkinkan Anda untuk memotong kebijakan asal yang sama dan memuat JSON dari server eksternal ke JavaScript di halaman web Anda.
sumber
JSONP adalah singkatan dari "JSON with Padding" dan ini merupakan solusi untuk memuat data dari domain yang berbeda. Itu memuat skrip ke dalam kepala DOM dan dengan demikian Anda dapat mengakses informasi seolah-olah itu dimuat di domain Anda sendiri, sehingga dengan melewati masalah lintas domain.
Sekarang kita dapat meminta JSON melalui AJAX menggunakan JSONP dan fungsi panggilan balik yang kita buat di sekitar konten JSON. Outputnya haruslah JSON sebagai objek yang kemudian dapat kita gunakan data untuk apa pun yang kita inginkan tanpa batasan.
sumber
JSONP pada dasarnya adalah, JSON dengan kode tambahan, seperti panggilan fungsi yang melingkari data. Ini memungkinkan data untuk ditindaklanjuti selama parsing.
sumber
JSON
JSON (JavaScript Object Notation) adalah cara mudah untuk mentransport data antar aplikasi, terutama ketika tujuannya adalah aplikasi JavaScript.
Contoh:
Berikut adalah contoh minimal yang menggunakan JSON sebagai transportasi untuk respons server. Klien membuat permintaan Ajax dengan fungsi steno jQuery $ .getJSON. Server menghasilkan hash, memformatnya sebagai JSON dan mengembalikan ini ke klien. Klien memformat ini dan meletakkannya di elemen halaman.
Server:
Klien:
Keluaran:
JSONP (JSON dengan Padding)
JSONP adalah cara sederhana untuk mengatasi pembatasan peramban saat mengirim respons JSON dari berbagai domain dari klien.
Satu-satunya perubahan di sisi klien dengan JSONP adalah menambahkan parameter panggilan balik ke URL
Server:
Klien:
Keluaran:
Tautan: http://www.codingslover.blogspot.in/2014/11/what-are-differences-between-json-and-jsonp.html
sumber
“JSONP adalah JSON dengan kode tambahan” akan terlalu mudah bagi dunia nyata. Tidak, Anda harus memiliki sedikit perbedaan. Apa yang menyenangkan dalam pemrograman jika semuanya berfungsi ?
Ternyata JSON bukan bagian dari JavaScript . Jika semua yang Anda lakukan adalah mengambil objek JSON dan membungkusnya dalam panggilan fungsi, suatu hari Anda akan digigit oleh kesalahan sintaks aneh, seperti saya hari ini.
sumber
JSONP adalah cara sederhana untuk mengatasi pembatasan peramban saat mengirim respons JSON dari berbagai domain dari klien.
Tetapi implementasi praktis dari pendekatan ini melibatkan perbedaan-perbedaan kecil yang seringkali tidak dijelaskan dengan jelas.
Berikut ini adalah tutorial sederhana yang menunjukkan JSON dan JSONP berdampingan.
Semua kode tersedia secara gratis di Github dan versi live dapat ditemukan di http://json-jsonp-tutorial.craic.com
sumber