jQuery.ajax向后台传递数组问题的解决方法

前端之家收集整理的这篇文章主要介绍了jQuery.ajax向后台传递数组问题的解决方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

今天重温了一个问题,jQuery.ajax向后台传递一个数组,而在后台接收不到该值。

前台js方法部分代码如下:

BoxIds = new Array(); BoxIds.push(12182); BoxIds.push(12183); BoxIds.push(12184); //向后台交互 $.ajax({ url: "/xxx",type: "GET",data: { "BoxIds": BoxIds,"BoxType": 0,"time": new Date().getTime() },success: function(data) { //do sth... } });

后台controller代码(SpringMVC)

Box/changeLock") public String changeLock(final Long[] BoxIds,final int BoxType) { return locker_ChangeLockService.changeLock(BoxIds,BoxType); }

观察浏览器中发送的请求,可以发现参数如下:

可以看到,参数的名字为BoxIds[]而不是我们所定义的BoxIds,也就是说,当传递数组时,会在我们的数组名称自动加上”[]”,所以后台接不到。

解决办法:

设置jQuery.ajax的tradional属性

修改之后重新发出请求,观察浏览器:

请求参数2

这次参数不带”[]”了,并且后台可以成功接收到该数组。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

原文链接:https://www.f2er.com/ajax/39329.html

猜你在找的Ajax相关文章