福尔摩斯est 2022-05-25 20:12 采纳率: 100%
浏览 101
已结题

ajax使用同步请求方式,后台运行接受请求成功,但既不执行success,也不执行error,complete同样没有执行

问题遇到的现象和发生背景

我想要根据发送请求返回的结果进行选择,但是前后端200正常,就是不进入success、error、complete中

问题相关代码,请勿粘贴截图
    function isBuy(id) {
        var goodId = id;
        layer.open({
            type: 1
            , title: '购买提示'
            , offset: '100px'
            , content: '<input id=\"goods_id\" type="number" style=\"padding: 20px 100px; color: deepskyblue\"></input>'
            , btn: ['确定', '取消']
            , btnAlign: 'c' //按钮居中
            , shade: 0 //不显示遮罩
            , yes: function () {
                var goodsId = $("#goods_id").val();
                $.ajax({
                    type: "post",
                    url: "/addCart?id=" + goodId + "&goods=1&goodId=" + goodsId,
                    async:false,
                    dataType: "json",
                    success: function (jsonResult) {
                        alert("成功");
                    },
                    error: function () {
                        alert("加入购物车失败");
                    },
                    complete: function () {
                        alert("执行完成");
                    }
                });
                alert("完成!");
                layer.closeAll();
                parent.location.reload();
                return 0;
            }
            , btn2: function () {
                layer.close();
                return 0;
            }
        });
    }

@RequestMapping("/addCart")
    @ResponseBody
    public JSONResult cart(String id, String goods, String goodId, HttpSession session) {
    return JSONResult.ok("加入成功!");
    // JSON格式的通用响应对象,封装的就是后台返回给前台的所有信息
}
  • 写回答

3条回答 默认 最新

  • web修理工 2022-05-25 20:54
    关注

    用这个试试 如果不行加 不行再header:{"content-type":"application/x-www-form-urlencoded"}

        function isBuy(id) {
            var goodId = id;
            layer.open({
                type: 1
                , title: '购买提示'
                , offset: '100px'
                , content: '<input id=\"goods_id\" type="number" style=\"padding: 20px 100px; color: deepskyblue\"></input>'
                , btn: ['确定', '取消']
                , btnAlign: 'c' //按钮居中
                , shade: 0 //不显示遮罩
                , yes: function () {
                    var goodsId = $("#goods_id").val();
                    $.ajax({
                        type: "post",
                        url: "/addCart",
                        async:false,
                       data:{
                         id:goodId,
                         goods:1,
                        goodId: goodsId
                          },
                        dataType: "json",
                        success: function (jsonResult) {
                            alert("成功");
                        },
                        error: function () {
                            alert("加入购物车失败");
                        },
                        complete: function () {
                            alert("执行完成");
                        }
                    });
                    alert("完成!");
                    layer.closeAll();
                    parent.location.reload();
                    return 0;
                }
                , btn2: function () {
                    layer.close();
                    return 0;
                }
            });
        }
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 已采纳回答 5月26日
  • 创建了问题 5月25日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改