ajax 傳輸型別與接收型別的誤區盲點
阿新 • • 發佈:2018-12-11
一般的使用ajax基本成了固定模式,貼上一個ajax元件,修修改改就能用,其實小元件大應用,此處記錄ajax在傳輸與接收json格式的資料的用法:
$.ajax contentType 和 dataType , contentType 主要設定你傳送給伺服器的格式,dataType設定你收到伺服器資料的格式。
接收json:dataType:json
傳送json貌似沒有設定過,其實是contentType,預設的值:application/x-www-form-urlencoded,
這種格式的特點就是,name/value 成為一組,每組之間用 & 聯接,而 name與value 則是使用 = 連線。如: wwwh.baidu.com/q?key=fdsa&lang=zh 這是get , 而 post 請求則是使用請求體,引數不在 url 中,在請求體中的引數表現形式也是: key=fdsa&lang=zh的形式。
鍵值對這樣組織在一般的情況下是沒有什麼問題的,這裡說的一般是,不帶巢狀型別JSON,也就是 簡單的JSON,形如這樣:
{
a: 1,
b: 2,
c: 3
}
但是在一些複雜的情況下就有問題了。 例如在 ajax 中你要傳一個複雜的 json 對像,也就說是物件嵌陣列,陣列中包括物件,如果你這樣傳:
{ data: { a: [{ x: 2 }] } }
http 還可以自定義資料型別,於是就定義一種叫 application/json 的型別。這種型別是 text , 我們 ajax 的複雜JSON資料,用 JSON.stringify序列化後,然後傳送,在伺服器端接到然後用 JSON.parse 進行還原就行了,這樣就能處理複雜的物件了。