qq_40619811 2022-07-28 21:55 采纳率: 89.8%
浏览 435
已结题

为什么我的ajax传到后端,后端却显示为null

你好,我的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<Cangpin> cp= reds.getResult();
        for(int i=0;i<cp.size();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呢。也就是前端的数据并没有传到后端,结果变成空值。
这是为什么呢。

  • 写回答

3条回答 默认 最新

  • 鱼找水需要时间 Java领域优质创作者 2022-07-28 22:39
    关注
    1. 后端不要写@RequestBody,默认从url获取参数
    2. ajax去掉dataType:'text', url路径不对,参数'stdlib':stdlib拼接在url后采用 ?key=value格式进行拼接
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月7日
  • 已采纳回答 7月30日
  • 创建了问题 7月28日

悬赏问题

  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题
  • ¥20 基于matlab的航迹融合 航迹关联 航迹插补
  • ¥15 用Matlab实现图中的光线追迹
  • ¥15 联想笔记本开机出现系统更新界面