jQuery的ajax()、post()方法提交數組,參數[] 問題


 

當用$.ajax()向后台提交參數時,如果參數中數組的話一般在后台會用List,或Integer[] 等數組對象進行接收.

 

比如:

$.ajax({
   type: "POST",
   url: url,
   data:{ gender:[0,1] },
   dataType: "json",
   async:false
  });

 

這里有個查詢性別的gender數組.

用火狐的firebug查看post數據的時候,如果jquery版本過高會發現gender按以下類型提交

schGender[] 1

schGender[] 0

 

也就是說它把數組里面的每個元素都當成了數組了. 這樣傳到后台就會報錯了.

 

解決辦法是換低版本的jquery,我這里換成1.3.2就沒問題了(不推薦). 之后再查看POST數據就是:

schGender 1

schGender 0

 

最好的解決辦法是添加一個屬性

traditional:true

$.ajax({
   type: "POST",
   url: url,

   traditional:true,
   data:{ gender:[0,1] },
   dataType: "json",
   async:false
  });

OR 

jQuery.ajaxSettings.traditional = true;

$.post(url,function(){

});

 

轉載:https://www.cnblogs.com/garfieldzhong/p/5124589.html


免責聲明!

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



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