zoukankan      html  css  js  c++  java
  • Ajax请求传递数组参数的方法

    方法一:拼接字符串参数

    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阻止深度序列化。

  • 相关阅读:
    UVA 562 Dividing coins
    who is in front of me 解题报告
    UVA 111 历史考试
    UVA 1045 最长公共子序列
    HDU 1003 解题报告
    ACM2014-04训练计划
    基于邻接表的新顶点的增加
    4004.六度空间理论
    4003.基于Dijsktra算法的最短路径求解
    4002.基于快排思想的查找
  • 原文地址:https://www.cnblogs.com/lvjunlong/p/9372564.html
Copyright © 2011-2022 走看看