博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ajax请求传递数组参数的方法
阅读量:4983 次
发布时间:2019-06-12

本文共 907 字,大约阅读时间需要 3 分钟。

方法一:拼接字符串参数

var arr={params:['param','param2']};$.ajax({url:请求地址,            data:arr,            type:"POST",            success:function(){                //do something            }        });

方法二:ajax提交添加”traditional:true”参数

traditional:是否使用传统的方式浅层序列化。

数组或jQuery对象会按照name/value对进行序列化,普通对象按照key/value对进行序列化。

var arr=new Array();arr[0]='param';arr[1]='param2';$.ajax({url:请求地址,            data:{params:arr},            type:"POST",            traditional:true, //默认false            success:function(){                //do something            }        });

 

通过ajax提交数组时,会自动在所设定的参数后面增加中括号:“[]”,导致后端spring MVC中的@RequestParam获取不到参数。

解决方法:

ajax请求时增加:traditional: true 就可以正常提交了。原因如下:

jQuery会调用jQuery.param序列化参数,jQuery.param( obj, traditional ),默认的话,traditional为false,即jquery会深度序列化参数对象,以适应如PHP和Ruby on Rails框架,但servelt api无法处理,我们可以通过设置traditional 为true阻止深度序列化。

 

转载于:https://www.cnblogs.com/lvjunlong/p/9372564.html

你可能感兴趣的文章