ajax中參數traditional的做用

在使用ajax向後臺傳值的時候,有的時java

$.ajax({
  type: "post",
  async: true,
  data: {
    "records": ["123","456","789"]
  },
  url: "xxxxx",
  error: function(request) {},
  success: function(data) {}
});

可是經過測試很快就會發現java後臺沒法取到參數,由於jQuery須要調用jQuery.param序列化參數,jQuery.param(obj, traditional )默認狀況下traditional爲false,即jquery會深度序列化參數對象,以適應如PHP和Ruby on Rails框架,但servelt api沒法處理,咱們能夠經過設置traditional 爲true阻止深度序列化,而後序列化結果以下:jquery

records: ["123", "456", "789"]    =>    records=123&p=456&p=789ajax

隨即,咱們就能夠在後臺經過request.getParameterValues()來獲取參數的值數組了,以下:api

$.ajax({
  type: "post",
  async: true,
  traditional: true,  
  data: {
    "records": ["123","456","789"]
  },
  url: "xxxxx",
  error: function(request) {},
  success: function(data) {}
});
相關文章
相關標籤/搜索