js提交数组参数,后台接收为字符串问题

首先我们先看一个js以post方式提交数组的方法:

var image = [‘20180512135343_564.png‘,‘20180512135156_860.png‘];
$.post(‘/community/community/add_community‘,{
    ‘type‘: 1,
    ‘title‘: ‘tupianshangchuan‘,
    ‘image‘: image,

},function(res) {
    console.log(res);
});

正常情况下,image是以数组的方式提交给后台:

可能你在使用一些框架的时候,框架自行进行了一些处理,使后台接收到的数据是字符串形式,如:"[‘20180512135343_564.png‘,‘20180512135156_860.png‘]"。

这种情况,我们可以用JSON.stringify将对象数组转为JSON形式的字符串提交给后台避开这种现象。代码如下:

js代码:

var image = [‘20180512135343_564.png‘,‘20180512135156_860.png‘];
$.post(‘/community/community/add_community‘,{
    ‘type‘: 1,
    ‘title‘: ‘tupianshangchuan‘,
    ‘image‘:JSON.stringify(image),

},function(res) {
    console.log(res);
});

php接收,json_decode()函数处理:

$image = $_POST("image");
$image_arr = json_decode($image,true);

原文地址:https://www.cnblogs.com/North-South/p/9029332.html

时间: 2024-07-28 21:13:25

js提交数组参数,后台接收为字符串问题的相关文章

JS传递数组到后台

方法一: 1.使用JSON.stringify 将数组对象转化成json字符串; var array = ["1", "2"]; $.ajax({ type : 'POST', url: path + '/check/testPost', contentType : "application/json" , data : JSON.stringify(array), success : function(data) { } }); 2.传输过程中

Ajax 提交表单或提交数据到后台时没有提交值(后台接收不到值)

function markMeg(idsStr){ alert(idsStr); $.tips("正在提交数据,请稍后...",30); $.ajax({ type: "POST", dataType: "json", url:"my/message/mark", data: {"ids":idsStr}, success: function (data) { if(data["doResult&

js ajax post 提交的时候后台接收不到参数,但是代码没有错,怎么回事

这个错误有两点,你自己写的php页面里面的参数接收出错了 还有就是你没有写一句重要的代码告诉浏览器 你使用post提交方式去提交 xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 出现这个错误的时候  php页面信息就会说 你的什么参数是未定义的(Undefined) 如果以上两点都没错还是接收不到参数  可以互相交流 原文地址:https://www.cnblogs.

checkbox选中并通过ajax传数组到后台接收

这次讲的是通过复选框,选中,点击提交,并将值chuan到后台controller.这个应用是比较广的,什么批量修改,批量添加,授权管理等等,都用到这个.其实这个还是挺简单的,并没有想象中的那么难,但我看到不少朋友在此处受挫,当然曾经的我也是如此.现在给大家贴个代码分享下吧. 本文中使用的是layui框架,当然也可以不引进它,不过jquery的库还是要的. 该示例环境是spring+springmvc+mybatis plus+jdk8+mysql57+maven3以上+window10(linu

ajxj传递数组到后台,js传递数组到后台

用angular做商品搜索功能,后台接口那边过滤条件必须传递数组过去,结果比较尴尬的事情发生了,每次传递数组过去,查看请求发送的数据,自动被转成了对象,很头疼. 数据传递前 传递后我查看了请求的数据 很尴尬,直接变成了对象了.解决方案是利用JSON.stringify进行转一次 再次请求就成功了,查看下请求的数据,没问题. 原文地址:https://www.cnblogs.com/echolun/p/9152504.html

ajax提交数组至后台,无法获取值得问题

$(".delAll_btn").click(function(){ var checkStatus = table.checkStatus('userList'), data = checkStatus.data, id = []; if(data.length > 0) { for (var i in data) { id.push(data[i].id); } console.info(id.toString()) layer.confirm('确定删除选中的用户?', {

【JS】【2】ajax传的参数为数组时,后台接收为null的处理

前言: 1,参考博客:解决JavaScript中使用$.ajax方式提交数组参数 - Just_Do - 博客园(http://www.cnblogs.com/caoyc/p/5710702.html) 2,解决方案:添加traditional : true 正文: js: var array = []; $("input").each(function(){ array.push($(this).val()); }); $.ajax({ type : "GET",

关于前端传参数,后台接收的问题

1.通过ajax,示例: 传给后台的数据通过json封装起来,再用ajax将json传到后台,ajax是用到Jquery的ajax,在jsp先加入Jquery的引用 <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script> js传值的方法如下 function testAjax() { var users=[{ name:'张三', age:'21', birt

js中数组对象字符串的相互转换

对象-数组-字符串: 例如: var data = { user:"userName", pass:"12121" };//这是一个对象 如果要给这个data 对象追加一个属性就比如: new Date( ).getTime( );//获取当前时间到那个时间的时间间隔单位是毫秒: data.time = new Date( ).getTime( ); 此时data 里面就多了一个属性: time : " 获取到的那个毫秒数" 即: var dat