zoukankan      html  css  js  c++  java
  • SpringCloud中服务消费者接受前台传参问题(报错415)

    服务消费者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

  • 相关阅读:
    unix文件权限
    jira部署,主机迁移,数据库迁移,jira
    c函数习记
    常用软介质下载
    Matlab interpgui
    LightOJ 1422
    【CODEFORCES】 A. Keyboard
    leetcode 230: Kth Smallest Element in a BST
    Vertica7 Native Connection Load Balance
    vlc模块间共享变量
  • 原文地址:https://www.cnblogs.com/yh-simon/p/12264483.html
Copyright © 2011-2022 走看看