1. 程式人生 > >JSON和JSONP理解

JSON和JSONP理解

這是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的一種形式進行了封裝