精华内容
下载资源
问答
  • 主要为大家详细介绍了jQuery.ajax向后台传递数组问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 本人的项目中通过jquery.ajax调用webservice. 客户端代码如下: $.ajax({ url: test/xxx.asmx, type: 'POST', dataType: 'xml', timeout: , data: { name: zhangsan, tags: [aa, bb, cc] }, error: function(xml) ...
  • 在使用MVC时,向服务器端发送POST请求时有时需要传递数组作为参数值,下面通过实例代码给大家介绍jQuery Ajax向服务端传递数组参数值的方法,一起看看吧
  • ajax在web项目开发中经常会用到,平时我们传递数据,基本都是一个参数名对应一个参数值,后端通过参数名就可以得到参数,从而进行相关逻辑处理,但是有时候我们会遇到批量操作,比如批量删除一个列表,这时候我们...

    ajax在web项目开发中经常会用到,平时我们传递数据,基本都是一个参数名对应一个参数值,后端通过参数名就可以得到参数,从而进行相关逻辑处理,但是有时候我们会遇到批量操作,比如批量删除一个列表,这时候我们传递的就是一个id的数组,这时候前后端需要对数组传递做一些特别的处理:

    第一种方式:

    • 通过ajax一个属性traditional:true来指定参数序列化时,不做深度序列化。
    • 通过JSON.stringify()将参数作为数组传递到后台,后台不能通过获取参数名的方式获取参数,需要通过inputstream流来读取参数。

    前端代码:

    后端代码(springmvc):

    这种方式我们传递的参数form-data中,每个参数在传递的过程中有一个参数名,这里叫ids,如果不做traditional:true的设置,参数传递中是这样子参数名ids后面加入了[],服务端是无法通过参数名获取参数的:

     

    当设置traditional:true之后,参数变为这样子:

    这种参数传递的方式,后端可以直接通过参数名ids来获取参数值,获取的参数也是一个数组。

    第二种方式:通过body传入一个数组,参数没有名字,后端需要通过流来读取。

    前端代码:

    后端代码(springmvc):

    这种方式form-data是这个样子的:

    参数没有名字,后端需要通过输入流来读取body中的数据。这里需要注意一点,如果还有别的参数,获取body中的参数一定要在别的参数取之前获取。否则一旦通过request.getParameter()之后,body中的参数就会失效。

    展开全文
  •  ajax中的post方法有三个参数,前两个 参数是必须的,第三个参数根据需求而定。下图中画红色部分,如果你本身的编码就是utf8的就可以不用了。因为ajax本身默认的传送值以及本身都是用utf8编码,如果你用的是gbk编码...
  • ajax post 传递数组参数

    2017-11-22 17:26:00
    1.前言 此文章仅作为记录,方便查阅。 2.代码 javascript: ...var idArr = ['one','two','Three'];...$.ajax({ type: 'POST', data : { type:'type1', ////以下两条语句是等价的,因为Jquery做了转换,...

    1.前言

    此文章仅作为记录,方便查阅。

    2.代码

    javascript:

    var idArr = ['one','two','Three'];			
    $.ajax({
    	type: 'POST',
    	data : { 
                    type:'type1',
                    以下两条语句是等价的,因为Jquery做了转换,所以最好的方式是写成"idArr[]",更能让人一眼看出是数组
              //idArr:idArr 
              idArr[]":idArr          
                    }, 
            url : './index', 
            success: function(msg) {
                 //TODO 
            } 
    });  

    Java: 

    String type= request.getParameter("type");
    String[] arr= request.getParameterValues("idArr[]");
    

    3.小结

    若还有其它方法,后续补充。 

     

    转载于:https://www.cnblogs.com/fanbi/p/7880316.html

    展开全文
  • ajax向后台传递数组乱码解决方法

    千次阅读 2017-05-07 12:44:21
    var result = ['1','2','3']; $.ajax({ type: "GET", url:"http://xxxxxxxx", data:{   groups:result,  }, dataType:'json',  success: function (Json) {  console.log("success")

    var result = ['1','2','3'];

    $.ajax({
    type: "GET",
    url:"http://xxxxxxxx",
    data:{       
          groups:result,
     },
    dataType:'json', 
    success: function (Json) {
           console.log("success");
     },
     error:function(){
          console.log("error");
     }

    })       

    传递的数组groups后面出现了乱码。

    原因是:当传递数组时,会在我们的数组名称后自动加上”[]”,在java后台是无法取到参数的,因为jQuery需要调用jQuery.param序列化参数,jQuery.param( obj, traditional )默认的话,traditional为false,即jquery会深度序列化参数对象,以适应如PHP和Ruby on Rails框架,但servelt api无法处理,我们可以通过设置traditional 为true阻止深度序列化,然后序列化结果如下:

    groups: ["1", "2", "3"]    =>    groups=1&groups=2&groups=3

    最好在上述ajax代码中添加:

    traditional: true,

    传递正确。

    展开全文
  • php用Ajax传递数组

    千次阅读 2017-09-30 11:12:15
    代码如下: 定义array数组 var array = [1,2,3]; $.ajax({ url:"cart.php?act=delcart", async:false, type:'POST', data:{array:array}, dataType:'json', traditiona

    代码如下: 定义array数组

       var array = [1,2,3];
        $.ajax({
            url:"cart.php?act=delcart",
            async:false,
            type:'POST',
            data:{array:array},
            dataType:'json',
            traditional: true,
            success:function(data){
                alert(data)
            },
            error:function(){
                alert("#");
            }
        });

    当我们用ajax传递时,我们用浏览器开发工具查看头信息时发现我们定义的数组并没有被正确的传递
    这里写图片描述

    这里写图片描述
    解决方法:JSON.stringify()方法将一个 JavaScript 值转换为一个 JSON 字符串。
    此时

     var array = [1,2,3];
        $.ajax({
            url:"cart.php?act=delcart",
            async:false,
            type:'POST',
            data:{array:JSON.stringify(array)},
            dataType:'json',
            traditional: true,
            success:function(data){
                alert(data)
            },
            error:function(){
                alert("#");
            }
        });

    然后我们在ajax请求头可以看到我们的参数:
    这里写图片描述

    这样我们的数组数据就能传到后台,但是要注意的是在后台我们要用json_decode()来解析post过来的array
    如果不解析,那么array传到后台时,还是‘ [“6”,”5”,”4”] ’。

    展开全文
  • 通过ajax提交数组时,会自动在所设定的参数后面增加中括号:“[]”,导致后端spring MVC中的@RequestParam获取不到参数。 解决方法: ajax请求时增加:traditional:true就可以正常提交了。原因如下: jQuery会...
  • ajax post传递数组到后台

    千次阅读 2014-04-10 21:06:59
    $.post("test.php", { 'choices[]': ["Jon", "Susan"] }); 按这个例子做,在Java里用request.getParameter("'choices");取不到值, 要这样才行request.getParameterValues("monthIncome[]"); 但是不用jQuery,...
  • 最近在做项目的时候遇到了需要将一个数组传递到servlet中,用这个数组的值查找数据库中的相应内容。有一个需要注意的地方,看一下下面的代码: var out_box = document.getElementsByName("out_box") ; ...
  • 在使用MVC时,向服务器端发送POST请求时有时需要传递数组作为参数值 下面使用例子说明,首先看一下Action [HttpPost] public ActionResult Test(List<string> model) { return Json(null, ...
  • <p>I need to pass array data through ajax, and also should post back it in another page. but my code is not working, this is my code: <pre><code>var data = [page_num: page, lstGend: <?php echo $...
  • django ajax传递数组

    千次阅读 2019-04-05 22:57:43
    需求:在ajax请求中,需要传递数组到django后台。 直接上代码: //前端ajax代码 $.ajax({ type: "POST", url: "/sky/deploy/saveDeploy", traditional:true, //加上这项可以传递数组 data: {"deployChecked":...
  • js通过Ajax传递数组

    2019-11-05 14:29:38
    只需要在参数后面加 "" 就可以传递数组了 function sendArray() { var strArray = ["A","B","C","D"]; var numArray = [1,2,3,4]; $.ajax({ url:"sendArray", type:"post", data:{ ...
  • 这里遇到了两个问题:1.ajax传递数组后台接收不了,2.当传递数组为空的时候系统空指针。  问题1: ajax传递数组后台接收不了   出现问题的1的原因是因为ajax的解析数组传到后台的时候为其参数名多加了一个...
  • //输出日志 console.log(requestBody.length) $.ajax({ url:"send/array.html", data:requestBody, type:"post", contentType:"application/json;charset=utf-8", dataType:"json", success:function (data) { $("#...
  • ajax向后台传递数组2.0

    2018-10-25 17:05:04
    通过ajax向后台传递数组,后台接受不到。 解决方法 ajax没办法传数组(其实可以,就是试了很多方法都不可行); 在前端将数组转为字符串形式,然后包装成json数据格式,传递到后台; 后台照常接收,通过split解析...
  • 当我们使用正常的在交互中,需要传递数组是,例如 $.ajax({ url: ‘’, data: {'userIdArr': ['00','11']}, type: 'post', success:function(data){ } }) 这样在后台通过String[] userIdArr, 是接收不到值...
  • 核心: 在上述ajax请求中添加:traditional: true,这样就可以传递参数数组了。 后端java代码: @RequestMapping(value = "/import/tools/single", produces = "text/html;charset=UTF-8", method = RequestMethod....
  • jquery Ajax 如何传递数组类型参数

    万次阅读 2018-04-20 15:36:34
    上次做项目的时候碰见一个向后台传递数组参数的问题 稍微研究了一下: 假设需要向后台传递的参数为: var userid = [1,2,3]; var username=["a","b","c"]; var school="南山幼儿园"; 有两种比较简单的...
  • ajax 像后台传递参数,一般是字典的形式传递,但是如果字典的value的值是一个数组的话,通过request.form获取得到的结果是 None。这是就需要把数组对象转化为json字符串,后台才可以正常接收。具体代码如下: 1,js...
  • .Net MVC 通过Ajax传递数组

    千次阅读 2019-05-06 14:29:36
    传递数组时不能通过url传递,url传递的数组参数传到后台后会变成字符串的形式。 如代码一 代码一: $.ajax({ type: 'POST', url: '/People/getPeopleForArrayPeopleID?arrayPeopleID=' + arrayPeopleID,' ...
  • ajax进行post请求向后台传输数组

    千次阅读 2020-06-16 17:56:43
    需求:再进行ajax进行请求post请求时,需要以一个固定的key向后台发送一个数组。 此时这样进行请求的时候 ,后台接收不到我的这个数组 function ajax(){ let data = { arr:[1,2,3] } $.ajax({ type: "post", ...
  • Ajax Post 传输对象或数组的解决方案

    千次阅读 2015-09-29 17:36:17
    在使用Ajax post像后台传输数据的时候,并不是都可以使用form提交的。特别是遇到一些自定义样式的控件时候,这时需要自己去组合js对象,并传输到后台。 然而post传输数据只能传输字符串才有效,如果直接填对象的话...
  • AJAX 传递二维数组至后端

    千次阅读 2018-12-29 00:16:34
    var save_plan=[]; $.each(checkStatus.data,function (k,v) { if(v.outton>0&&v.inv>0&&v.outv>0&&v.status!... , type: 'post' , data:{'save_plan':save_plan} , success: function (res) { } });  
  • JS AJAX传递数组的方法

    2020-05-17 11:29:01
    在用ajax传递数组时一开始用的是 $.post({ url:'delEmployee', data:{ 'ids':ids }, success:function(){ } } }) 后台无法接收,浏览器报错 后来经过查阅资料得知应应采用这样的写法 $.post({ url:'...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,971
精华内容 12,388
关键字:

ajax通过post传递数组