JSON:把響應(yīng)的結(jié)果當(dāng)作 JSON 執(zhí)行,并返回一個(gè) JavaScript 對(duì)象。如果指定的是 json,響應(yīng)結(jié)果作為一個(gè)對(duì)象,在傳遞給成功處理函數(shù)之前使用 jQuery.parseJSON 進(jìn)行解析。 解析后的 JSON 對(duì)象可以通過該 jqXHR 對(duì)象的 responseJSON 屬性獲得的。json 的處理只要是在 ajaxConvert 方法中把結(jié)果給轉(zhuǎn)換成需要是 json 格式,這是后面的內(nèi)容,這里主要研究下 jsonp 的預(yù)處理。
JSONP:是一個(gè)非官方的協(xié)議,它允許在服務(wù)器端集成 Script tags 返回至客戶端,通過javascript callback 的形式實(shí)現(xiàn)跨域訪問(這僅僅是 JSONP 簡(jiǎn)單的實(shí)現(xiàn)形式)。JSON 系統(tǒng)開發(fā)方法是一種典型的面向數(shù)據(jù)結(jié)構(gòu)的分析和設(shè)計(jì)方法,以活動(dòng)為中心,一連串的活動(dòng)的順序組合成一個(gè)完整的工作進(jìn)程。
JSONP 出現(xiàn)的根源:
JSON 和 JSONP
與 XML 相比,JSON 是一個(gè)輕量級(jí)的數(shù)據(jù)交換格式。JSON 對(duì)于JavaScript開發(fā)人員充滿魅力的原因在于 JSON 本身就是 Javascript中的對(duì)象。
例如一個(gè) ticker 對(duì)象:
var ticker = {symbol:'IBM',price:100} 而JSON串就是 {symbol:'IBM',price:100}
index.html 中:
function showPrice(data){ alert("Symbol:" + data.symbol + ", Price:" + data.price) }
然后動(dòng)態(tài)加載 ticker.js 腳本
var data = {symbol:'IBM', price:100}; showPrice(data);
所以總結(jié)其實(shí) json 的一個(gè)核心點(diǎn):允許用戶傳遞一個(gè) callback 參數(shù)給服務(wù)端,然后服務(wù)端返回?cái)?shù)據(jù)時(shí)會(huì)將這個(gè) callback 參數(shù)作為函數(shù)名來包裹住 JSON 數(shù)據(jù),這樣客戶端就可以隨意定制自己的函數(shù)來自動(dòng)處理返回?cái)?shù)據(jù)了。
請(qǐng)驗(yàn)證,完成請(qǐng)求
由于請(qǐng)求次數(shù)過多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求
打開微信掃碼自動(dòng)綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書簽
舉報(bào)