ajax(2)

6.jsonp跨域請求

跨域是指從一個域名的網頁去請求另一個域名的資源。只要協議、域名、端口有任何一個的不同,就被當作是跨域

jsonp的本質:動態創建script標籤,然後通過它src屬性發送跨域請求,然後服務器響應的數據格式爲
【函數調用(foo(實參))】, 所以在發送請求之前必須先聲明一個函數,並且函數的名字與參數中傳遞的
名字要一致,這裏聲明的函數是由服務器響應的內容,(實際就是一段js代碼-函數調用)來調用

ajax和jsonp其實本質上是不同的東西。
ajax的核心是通過XMLHttpRequest獲取非本頁內容,
jsonp的核心則是動態添加<script>標籤來調用服務器提供的js腳本。

$.ajax({
             type: "get",     //只可以get,沒有post,因爲是通過動態添加script的,沒有添加post請求頭
             async: false,   //script標籤請求數據後再執行,async是異步的意思,這裏是同步
             url: "http://flightQuery.com/jsonp/flightResult.aspx?code=CA1998",
             dataType: "jsonp",  //jsonp跨域請求
             jsonp: "callback",//傳遞給請求處理程序或頁面的,用以獲得jsonp回調函數名的參數名(默認爲:callback)
             jsonpCallback:"flightHandler",//自定義的jsonp回調函數名稱,默認爲jQuery自動生成的隨機函
             //數名,jQuery會自自動在頁面添加這個函數,後臺返回的是這個函數的調用,而我們請求的數
             //據作爲參數傳入,這樣前臺就可以拿到數據了
             success: function(json){
                 alert('您查詢到航班信息:票價: ' + json.price + ' 元,餘票: ' + json.tickets + ' 張。');
             },
             error: function(){
                 alert('fail');
             }
         });

7、JSON的瞭解?XML和JSON的區別?

*瞭解: JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。 它是基於JavaScript的一個子
集。數據格式簡單, 易於讀寫, 佔用帶寬小; 
{'age':'12', 'name':'back'} JSON.parse('str') //轉換string爲JSON格式
 JSON.stringfy('JSON') //轉換JSON爲string格式
*區別:
(1).數據體積方面。 
    JSON相對於XML來講,數據的體積小,傳遞的速度更快些。
(2).數據交互方面。
    JSON與JavaScript的交互更加方便,更容易解析處理,更好的數據交互。
(3).數據描述方面。
    JSON對數據的描述性比XML較差。
(4).傳輸速度方面。
    JSON的速度要遠遠快於XML。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章