json、jsonp的定義和區別
阿新 • • 發佈:2017-08-21
雙引號 對象 parse 但是 用戶 必須 cal llb jsonp
一、區別
簡單來說,json是一種數據交換格式,jsonp是一種非官方跨域數據交互協議。json描述的是信息的格式,而jsonp是信息傳遞雙方約定的方法。json返回的是一串數據,而 jsonp返回的是腳本代碼(包含一個函數調用)。
json是理想的數據交換格式,但是沒有辦法跨域直接獲取,於是就將json包裹在一個合法的js語句中作為js文件傳過去。json是想要的東西,jsonp是獲取這個東西采取的方法,所以最終獲得和處理的還是json。所以可以這麽說,json是目的,jsonp只是手段。json總會用到,而jsonp只有在跨域數據獲取的時候才會用到。
二、定義
json可以理解為是一種格式,它的鍵必須用雙引號。json格式的對象必須寫在{}花括號裏面,json格式的數組寫在[]大括號裏面。
JSON.parse(字符串)可以將json字符串轉換成json對象;JSON.stringify(jsonObj)可以將json對象轉換成json字符串。
jsonp實現跨域的原理:
利用script標簽沒有跨域限制來達成和第三方通信,允許用戶傳一個callback給服務端,服務端返回數據會將這個callback參數作為函數名來包裹json數據,這樣客戶端就可以定制自己的函數來處理返回的數據。
json、jsonp的定義和區別