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

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

时间: 2024-10-07 12:37:38

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

springmvc中Tomcat跨服务器上传中文名文件报错解决方案

今天花了一整天时间解决tomcat跨服务器上传文件失败的问题,经过各种搜索终于解决了,下面是解决具体方法: 一.首先修改Tomcat的只读属性为false. 在tomcat的conf目录下的web.xml文件中找到<servlet>标签,添加初始化参数readonly,代码如下: <servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.se

【HTML】Jquery前台传参及接收

在一些网页应用中,有的时候需要前台之间传递参数,通过JS语法来做一些判断处理. 发送端:(a页面) <a href="b.html?Show=true" id="toPageB">跳转到b页面</a> PS:其中的问号后面的 show=true就是传递的参数名称及值. 接收端:(b页面) //通过准则表达式来获取对用的值 function getURLParameter(name) { return decodeURIComponent((n

安装wps导致 application/kset 上传文件类型报错解决办法

电脑中安装wps上传execl时,上传.xls文件时 报错 application/kset 文件类型不正确 打印array() print_r($_FILES ) 结果如下: Array ( [userfile] => Array ( [name] => Template.xls[type] => application/kset[tmp_name] => C:\\Windows\\temp\\phpACC.tmp [error] => 0 [size] => 768

Myeclipse中WebServlet cannot be resolved to a type报错

Myeclipse中WebServlet cannot be resolved to a type报错 今天在写Servlet时使用注解配置Servlet出现 WebServlet cannot be resolved to a type 的错误,然后一直找问题都没有找到,网上找了半天也没有找到,然后使用eclipse写了个servlet时对比了下发现就是少引入了 import javax.servlet.annotation.WebServlet; 引入后问题得到解决.

解决上传到github报错Successfully created project &#39;autotest&#39; on GitHub, but initial commit failed:

通过IDEA上传代码到GitHub上可是有时候会碰到这样的问题. 当我们选择VCS->Import into Version Control->Share Project on GitHub提交代码.点击OK.然后就跳出了这样的信息: Can't finish GitHub sharing process Successfully created project 'autotest' on GitHub, but initial commit failed: *** Please tell m

MO拆分计划行程序中写入PRODUCTIONORDERS表数据出现重复导致报错(BUG)20180502

错误提示:ORA-00001: 违反唯一约束条件 (ABPPMGR.C0248833319_6192)ORA-06512: 在 "STG.FP_MO_SPLIT", line 199  ORA-06512: 在 "STG.FP_MO_SPLIT", line 1318 错误描述:MO拆分计划行程序中写入PRODUCTIONORDERS表数据出现重复导致报错(BUG) 存储过程:FP_MO_SPLIT 解决方法: 原文地址:https://www.cnblogs.co

解决python中&#39;chromedriver&#39; executable needs to be in PATH报错

在使用python中的selenium模块的时候出现以下错误 解决: 问题是没有Chrome 驱动,那么先下载驱动. 下载之前先查看自己chrome当前的版本信息: 点击chrome浏览器右上角的圆圈标记处,在帮助-->关于Google Chrome(E)中查看浏览器的版本信息 之后打开网址http://npm.taobao.org/mirrors/chromedriver/找到对应的版本,下载并解压到自己想放的路径中. 然后在代码中添加chromedriver文件路径 from seleniu

Java 子类有参构造器报错

Java 子类的有参构造器报错:Implicit super constructor Person() is undefined. Must explicitly invoke another constructor import java.util.*; class Person { protected String firstName; protected String lastName; protected int idNumber; // Constructor Person(Strin

5.Spring-Cloud中服务的提供者和服务的消费者

注意:请使用官方建议的springboot和springcloud对应的版本 在之间的博客中已经写到如何建立高可用的注册中心,地址见高可用注册中心 现在我们来创建服务治理体系下的一个服务(即服务的提供者) 1.pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoca