解决ajax传过来的值后台接收不到的问题
程序员文章站
2022-07-06 16:49:55
问题描述:
在前端js里面写了一个ajax,前端alertx出来的是1或者1,2格式的数据,但是在后台取到的值一直都是null。
js代码如下:
functi...
问题描述:
在前端js里面写了一个ajax,前端alertx出来的是1或者1,2格式的数据,但是在后台取到的值一直都是null。
js代码如下:
function confirmcoursesystem(){ var findalltrainprogramnameid = $("#findalltrainprogramnameid").val(); if(findalltrainprogramnameid==null || findalltrainprogramnameid==""){ window.alertx("请选择培训方案!"); return false; } var coursesystemid = $('#coursesystemlist').val(); alertx(coursesystemid); $.ajax({ type: "post", url: "${ctx}/teach/teachdistribute/getcoursesystemnamebyid", data: { "coursesystemid": $('#coursesystemlist').val() }, success:function(coursesystemlistname){ $('#coursesystembody').html(""); for(var i=0; i<coursesystemlistname.length; i++){ $("#coursesystembody").append("<tr><td>"+coursesystemlistname[i] +"</td><td>课程体系</td><td>无</td></tr>"); } }, error:function(){ alertx("error"); } }); }
后台代码如下:
//添加下发-确认选择,根据coursesystemid获得coursesystemname @responsebody @requestmapping(value = "getcoursesystemnamebyid") public list<string> getcoursesystemnamebyid(@requestparam(required = false) string coursesystemid, httpservletrequest request){ logger.debug("==evan==coursesystemid: "+ coursesystemid); logger.debug("==evan==coursesystemid2 :"+request.getparameter("coursesystemid")); list<string> coursesystemlistname = new arraylist<>(); if(coursesystemid==null || coursesystemid.equals("")){ coursesystemlistname = null; }else { string[] coursesystemlistid = coursesystemid.split(","); for (string acoursesystemlistid : coursesystemlistid) { coursesystemlistname.add(resourcecoursesystemservice.get(acoursesystemlistid).getcoursesystemname()); } } return coursesystemlistname; }
问题原因:在使用浏览器查看之后发现数据格式是这样的,原因应该是前台传入值的类型不对:
解决办法:
修改前端传入值的类型,用tostring方法即可。代码如下
$.ajax({ type: "post", url: "${ctx}/teach/teachdistribute/getcoursesystemnamebyid", data: { "coursesystemid": $('#coursesystemlist').val().tostring() }, success:function(coursesystemlistname){ $('#coursesystembody').html(""); for(var i=0; i<coursesystemlistname.length; i++){ $("#coursesystembody").append("<tr><td>"+coursesystemlistname[i] +"</td><td>课程体系</td><td>无</td></tr>"); } }, error:function(){ alertx("error"); } });
以上这篇解决ajax传过来的值后台接收不到的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
jQuery.ajax向后台传递数组问题的解决方法
-
有关ajax的error与后台的异常问题解决
-
有效解决ajax传中文时,乱码的情况,php处理接收到的值
-
ios9定位服务的app进入后台三分钟收不到经纬度,应用被挂起问题及解决方案
-
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
-
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
-
解决vue下载后台传过来的乱码流的问题
-
js ajax post 提交的时候后台接收不到参数,但是代码没有错,怎么回事
-
解决ajax的delete、put方法接收不到参数的问题方法
-
解决ajax传过来的值后台接收不到的问题