JSON和JSONP理解
阿新 • • 發佈:2018-12-23
這是Google排名第一的答案,看完以後非常清晰,在這裡標記一下,怕以後找不到
http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html
總的來說就是:
JSON是一種傳遞資料的資料結構
優點:JS原生支援(有這個物件的屬性和方法),可讀性強,容易編寫和解析
他和物件有點像,但是在規則或者說格式上有區別
.沒有物件名,直接是{}或者[],裡面是屬性名和鍵值對,屬性名用引號包圍起來
JSONP
一種實現跨域獲取資料的方法
首先要理解什麼是同一域,協議,域名,埠號3者都一樣,則是同一域,否則就是不同域
ajax只能同一域獲取資料,要實現跨域獲取,需要伺服器代理,cors,JSONP等技術,這裡介紹JSONP
就是利用了src獲取資源可以跨域這一方法,通過<script>標籤,將伺服器端的函式引進來,裡面放了需要的資料,這是原理
至於JSONP,他是一種非正式協議,大家約定好 寫一個回撥函式,把函式名通過連線傳遞給伺服器,伺服器在引數那裡寫上需要的資料再返回。然後再在那個客戶端的回撥函式進行處理。
和AJAX相比,他們的原理不同,ajax的核心是通過XmlHttpRequest獲取非本頁內容,而jsonp的核心則是動態新增<script>標籤來呼叫伺服器提供的js指令碼。
其實ajax與jsonp的區別不在於是否跨域,ajax通過服務端代理一樣可以實現跨域,jsonp本身也不排斥同域的資料的獲取。
jQuery把JSONP作為ajax的一種形式進行了封裝