码迷,mamicode.com
首页 > 编程语言 > 详细

SpringCloud中服务消费者接受前台传参问题(报错415)

时间:2020-02-05 18:38:43      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:后台   lock   ret   status   介绍   jquery   direct   jquer   inline   

服务消费者clientFeign,接受前台form表单post提交的数据,虽然传递参数是对象类型,但是后台不能添加@RequestBody注解!!!,form表单提交的数据不是json格式!!!

1. 前端

<form class="layui-form" action="/menu/save" method="post">
            <div class="layui-form-item">
                <label class="layui-form-label">菜品:</label>
                <div class="layui-inline">
.....

2.服务消费者 ClientFeign 控制层接收数据

PostMapping(value = "/save")
    public String save(Menu menu){
        menuFeign.save(menu);
        return "redirect:/menu/redirect/menu_manage";
    }

错误格式:

PostMapping(value = "/save")
    public String save(@RequestBody Menu menu){
        menuFeign.save(menu);
        return "redirect:/menu/redirect/menu_manage";
    }

这里介绍下@RequestBody 

使用@RequestBody注解时,是用于接收Content-Type为application/json类型的请求,数据类型是JSON:{"aaa":"111","bbb":"222"}

不使用@RequestBody注解时,可以接收Content-Type为application/x-www-form-urlencoded类型的请求所提交的数据,数据格式:aaa=111&bbb=222  ,form表单提交以及jQuery的.post()方法所发送的请求就是这种类型。

很多时候,我们用 Ajax 提交数据时,也是使用这种方式。例如 JQuery 和 QWrap 的 Ajax,Content-Type 默认值都是「application/x-www-form-urlencoded;charset=utf-8」。

所以后台添加@RequestBody接收前台的form表单数据会报415错,具体如下:

There was an unexpected error (type=Unsupported Media Type, status=415).
Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported

 

参考链接:

SpringCloud之Feign调用服务:https://blog.csdn.net/uotail/article/details/84673347

SpringCloud供应者消费者模式传参数:https://blog.csdn.net/weixin_41595700/article/details/86508352

参考链接:

https://blog.csdn.net/f45056231p/article/details/84972881

SpringCloud中服务消费者接受前台传参问题(报错415)

标签:后台   lock   ret   status   介绍   jquery   direct   jquer   inline   

原文地址:https://www.cnblogs.com/yh-simon/p/12264483.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!