关于JQuery和SpringBoot的传参问题

这玩意真的,无情,初接触要碰很多坑。
首先,项目用了layUI,也用了thymeleaf。
但表单的提交我没有采用thymeleaf給的方式,因为太麻烦了,不想看(偷笑.gif)
所以选JQuery的ajax方式提交表单。

这里有几个坑

// 修改文章的表单处理
    @PostMapping("/adminUpdate")
    @ResponseBody
    public R<article> updateArticle(@RequestBody article article) {
        int result = articleService.updateArticle(article);
        System.out.println("进入修改方法");
        System.out.println(result);
        if(result == 1) {
            return R.ok(RHttpStatusEnum.ARTICLE_UPDATE_SUCCESS);
        }else {
            return R.ok(RHttpStatusEnum.ARTICLE_UPDATE_FAIL);
        }
    }

参数一定要加上@RequestBody,前端传来的json数据会对应名字放进你的参数对象中。

(名字很重要,一定要一一对应)

最后看一下前端的这个东西啊

 $.ajax({
                type:"POST",
                url: "/adminUpdate",
                dataType: "JSON",
                contentType: "application/json",
                data: JSON.stringify(data.field),
                success: function (result) {
                    alert(result);
                    var data = JSON.stringify(result);
                    alert(data);
                    var value = JSON.parse(data);
                    alert(value.code+" "+value.message);
                }
            });
					// data.field是layui提供的一个接口,代表全体字段的值

因为传的是json,一定要记得设置contentType,dataType是预期服务器返回的类型,不是你的数据类型。

data

data这个值要接受的是一个字符串,而不是一个对象。

最神奇的东西

可能你们很好奇我在干嘛,但success的回调函数的参数类型居然是一个Javascript对象。
所以如果你想把它转成json对象,得用两步,先转成字符串,在转成json对象。

上一篇:Ubuntu18.04安装compiz后死机无法进入图形桌面,提示watchdog: BUG: soft lockup - CPU#1 stuck for 22s!如何解决,测试有效!


下一篇:Python中按值来获取指定的键