ajax中參數traditional的作用


  在使用ajax向后台傳值的時候,有的時候一個字段需要傳多個值,這種情況下會想到用數組形式來傳,比如:

$.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阻止深度序列化,然后序列化結果如下:

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

隨即,我們就可以在后台通過request.getParameterValues()來獲取參數的值數組了,如下:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM