不加@RequestBody报500加上就报415

不加@RequestBody报500加上就报415,第1张

不加@RequestBody报500加上就报415

加粗样式

项目场景:

提示:这里简述项目相关背景:
前后端分离项目spring boot+vue


问题描述:

提示:前端给后端传值:在前端向后台发送一个json对象(字符串),后端用@RequestBody匹配接受的时候就会出现415,如果不用@RequestBody,那么前端发送来的数据是不能被正确解析成对象里的属性的。

@PostMapping
public Boolean save(@RequestBody Book book){
return bookService.save(book);
}
``

原因分析:

提示:这里填写问题的分析:
第一种情况
没有转换json数据
第二种情况:
表现层(controller)数据没有一致性处理
下面展示一些 内联代码片。

// An highlighted block
@Data
public class R {
    private Boolean flag;
    private Object data;
    private String msg;
    public R(){

    }
    public R(Boolean flag)
    {
        this.flag=flag;
    }
    public R(Boolean flag,Object data)
    {
        this.flag=flag;
        this.data=data;
    }
    public R(Boolean flag,String msg){
        this.flag = flag;
        this.msg = msg;
    }

    public R(String msg){
        this.flag = false;
        this.msg = msg;
    }}

第三种情况:
前台穿过来的json对象的key没有和实体类中共的属性对应,是绑定不成功的。
第四种情况
一定要指定contentType的值为『“application/json”』


解决方案: 可以用Axios Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。 拦截请求和响应
转换请求数据和响应数据
取消请求
自动转换 JSON 数据

使用 npm:

$ npm install axios

使用 bower:

$ bower install axios

使用 cdn:

切记不要
这么引入会报axios错误

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5661326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存