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

为什么我的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日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来