AJAX學習(4)---JSON與跨域處理

一、JSON

1、JSON的基本概念

JSON:JavaScript對象語法,是存儲和交換文本信息的語法,類似XML。它採用鍵值對的方式來組織,易於人們閱讀和編寫,同時也易於機器解析和生成。JSON是獨立於語言的,不管是什麼語言,都可以解析json,只需要按照json的規則即可。

2、JSON與XML的對比

json的長度和xml相比,比較短小。

json讀寫的速度更快。

json可以使用javaScript內建的方法直接進行解析,轉化爲JavaScript對象,非常方便。

3、JSON的語法規則

JSON的數據書寫格式是:名稱/值對,名稱/值對組合中的名稱寫在前面(在雙引號中),值對寫在後面(同樣雙引號中),中間使用冒號分割,比如:“name”:"衛莊",json的值可以是數值、字符串、布爾值、數組、對象、null。

4、JSON解析

解析JSON有兩種方式,eval和JSON.parse。在代碼中使用eval是不太嚴謹的,特別是用它執行第三方JSON數據(其中可能包含惡意代碼)時,儘可能使用JSON.parse()方法解析字符串本身,該方法還可以捕捉JSON的語法錯誤。


二、跨域處理

1、什麼是跨域?

當協議、域名、端口號中任意一個不相同時,都會造成跨域問題,不同域之間的互相請求,就是跨域。JavaScript出於安全方面的考慮,不允許跨域調用其他頁面的對象。什麼是跨域呢?簡單來說,就是因爲JavaScript同源策略的限制,不同域名下的js不能相符操作。

2、跨域處理方法一---代理

通過在同域名的web服務器端創建一個代理:北京服務器(域名:www.beijing.com)廣州服務器(域名:www.guangzhou.com),比如在北京的web服務器的後臺(www.beijing.com/proxy-shanghaiservice.php)來調用廣州服務器(www.guangzhou.com)的服務,然後把響應結果返回給前端,這樣前端調用北京同域名的服務器和調用廣州的服務器效果相同。

3、跨域處理方法二---jsonp

JSONP可以用於解決主流瀏覽器的跨域數據訪問問題,只支持GET方式,不支持POST請求。

4、跨域處理方法三---XHR2

HTML提供的XMLHTTPRequest Level2已經實現了跨域訪問以及其他以下新功能,但是IE10以下版本不支持,在服務端做以下改造即可:

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章