DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> json與jsonp知識小結(推薦)
json與jsonp知識小結(推薦)
編輯:關於JavaScript     

json

1. json 的值可以是下面這些類型:

① 數字(整數或浮點數),比如123,1.23

② 字符串(在雙引號中)

③ 邏輯值(true 或 false)

④ 數組(在方括號中)

⑤ 對象(在花括號中)

⑥ null

2. json解析方法

① eval('(' + jsondata + ')' ); 使用時永遠是不安全的,代碼注入

② JSON.parse(jsondata);

JSONLint json:字符串校驗工具

3. jQuery 實現ajax

jQuery.ajax([settings])

type :類型

url :發送請求的地址

data :是一個對象,連同請求發送到服務器的數據

dataType :預期服務器返回的數據類型,如果不指定,jQuery 將自動根據HTTP包MIME信息來智能判斷,一般我們采用json 格式,可以設置為”json”

success :是一個方法,請求成功後的的回調函數,傳入返回後的數據,以及包含成功代碼的字符串

error :是一個方法,請求失敗時調用此函數。傳入 XMLHttpRequest 對象

jsonp

跨域

一個域名地址的組成:

http://www .abc.com :8080 / scripts/jquery.js

協議://子域名. 主域名 :端口號 / 請求資源地址

當協議、子域名、主域名、端口號中任意一個不行同時,都算作不同域

不同域之間相互請求資源,就算作“跨域”

javascript 出於安全方面的考慮,不允許跨域調用其他頁面的對象。

什麼是跨域呢? 簡單的解釋就是因為javascript同源策略的限制,a.com 域名下的js無法操作b.com 或是 c.a.com域名下的對象

處理跨域方法:

—— 代理(屬於後台技術)比如在北京的web服務器的後台來調用上海服務器的服務,看然後再把響應結果返回給前端,這樣前端調用北京同域名的服務器就和調用上海的服務效果相同了。

—— JSONP

a域名去聲明,b域名去調用

注意:JSONP只能用於GET 請求,不支持POST請求(局限性)

—— XHR2

HTML5 提供的XMLHttpRequest Level2 已經實現了跨域訪問以及其他的一些新功能

IE10 以下的版本都不支持

在服務端做一些小小的改造即可:

header("Access-Control-Allow-Origin:"); 表示所有的服務器都可以訪問,也可以替換成特定的域名,比如說:服務器在上海,*換成北京服務器的域名,這樣只有從北京的域名才可以訪問

header("Access-Control-Allow-Methods:POST,GET");

下面說下jsonp 的優缺點。

同源策略 :即JavaScript只能訪問與包含它的文檔在同一域下的內容。jsonp可以跨越同源策略,當我們使用了jsonp,將會是另外一種協議通信了。

JSONP的優點是:它不像XMLHttpRequest對象實現的Ajax請求那樣受到同源策略的限制;它的兼容性更好,在更加古老的浏覽器中都可以運行,不需要XMLHttpRequest或ActiveX的支持;並且在請求完畢後可以通過調用callback的方式回傳結果。

JSONP的缺點則是:它只支持GET請求而不支持POST等其它類型的HTTP請求;它只支持跨域HTTP請求這種情況,不能解決不同域的兩個頁面之間如何進行JavaScript調用的問題。

以上所述是小編給大家介紹的json與jsonp知識小結(推薦),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家的支持!

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved