1. 程式人生 > >jquery ajax提交陣列引數時traditional的作用

jquery ajax提交陣列引數時traditional的作用

原文地址:小時刻個人部落格http://small.aiweimeng.top/index.php/archives/traditional.html

在一些簡單的專案中ajax傳到後臺的引數都是以鍵值對的形式傳輸;

例如:

data:{
  "id":1,
  "name":"測試"
}

 這種方式簡單直觀明瞭,但是在一些複雜的業務裡面,我們的傳值就不單單時這樣的簡單鍵值對,也會有傳一些陣列。
一些多選框的,如果ajax傳值十一字串的形式傳值的話,後臺就需要將字串轉換為陣列,

字串形式eg:

data:{
  "id":"1,2,3"
}

陣列形式eg:

data:{
  "id":[1,2,3]
}

陣列這種形式傳值操作方面也簡單了許多。
當然如果我們之間傳輸陣列的時候,jquery會對引數進行jquery.param()序列化我們後臺肯定是接受不到這個引數的值的。
那麼要怎麼處理該引數呢,在ajax中有一個屬性traditional深度序列化,預設為false,以適應PHP等框架。
我們可以通過設定tradtional為true阻止深度序列化。
例如:

data:{
  "id":[1,2,3,4]
},
traditional:true

這種形式後臺就不用再將字串轉化為陣列在進行操作,前端也無需取批結成字串了。