你好,我的ajax是text纯文本类型,想传到后端。结果后端一直显示为null空值,说明没有传进去,这是为什么呢?
<a href="/li1.html" style="text-decoration: none">
<div id="co" style="overflow:hidden;background-color: black">
<div id="cp" th:each="cangpin,cangpinStat:${cangpinlist}">
<div id="stdlib" hidden="hidden" th:text="${cangpin.xuhao}" >div>
<div id="cq" width="80%" height="auto">
<img th:src="${cangpin.path2}">
<p class="cqb" style="display:none" th:text="${cangpin.began}">p>
<p class="cqd" style="display:none" th:text="${cangpin.num}">p>
<p class="cqc">p>
div>
<div id="cqa">
<nobr class="span1" th:text="${cangpin.cangpinname}">nobr><br>
<nobr class="span2" th:text="${cangpin.type2}">nobr>
<nobr class="span3">限量nobr>
<nobr class="span4" th:text="${cangpin.totalnum}">nobr>
<nobr class="span5" th:text="' '+${cangpin.sys}">nobr><br>
<img th:src="${cangpin.icon}" style="height: 28px;width: 28px;margin-left:25px">
<nobr class="span6" th:text="' '+${cangpin.company}">nobr>
<nobr class="span7" th:text="' ¥'+${cangpin.xianjia}">nobr>
div>
div>
div>
a>
这是html的代码,其中${cangpin.xuhao}就是thymeleaf里面的需要传输的数据
var stdlib=$("#stdlib").text();
$.ajax({
type:'get',
url:'./querycp2.html',
async:true,
dataType:'text',
error:"重新请求",
data:{
'stdlib':stdlib,
},
success:function (){},
Error:function () {}
})
这是ajax部分的代码,其中,querycp2.html是当前网页。
@CrossOrigin
@RequestMapping("/querycp2")
@ResponseBody
public Model getCangpin2(Model mp,@RequestBody(required = false) String stdlib){
ArrayList cp= reds.getResult();
for(int i=0;i();i++) {
cp.get(i).setYuanjia(new DecimalFormat("#0.00").format(BigDecimal.valueOf(Double.valueOf(cp.get(i).getYuanjia()))));
cp.get(i).setXianjia(new DecimalFormat("#0.00").format(BigDecimal.valueOf(Double.valueOf(cp.get(i).getXianjia()))));
}
mp.addAttribute("cangpinlist", cp);
mp.addAttribute("stdlib",stdlib);
return mp;
}
这是后端代码,其中,stdlib字符串就是我要接收的字符串。
可是,stdlib为什么显示是空值null呢。也就是前端的数据并没有传到后端,结果变成空值。
这是为什么呢。
你前端传的是一个json,但是后端接受用的String 单字段接受肯定是空的, 后端应该用一个类 其中字段为 stdlib 来接收
这种问题,一般都是数据格式的问题,建议联调后端接口的时候,确认后端需要的数据格式,或者你们协商好