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。