(转载)http协议的Request Payload 和 Form Data 的区别
我正在开发的项目前端和后端是完全独立的,通过配置 webpack 的 proxy 将前端请求跨域代理到后台服务。昨天发现,我前端执行 post
请求,后台 springmvc 的 @RequestMapping
接收不到对应的请求参数。开始我以为是我 proxy 配置有问题,导致 post 参数不能传到后台。然而,并不是这样…
proxy 配置如下:
前端代码:
java 后台代码:
Request Payload VS Form Data
前端请求
我看了前端发起的请求,请求正文并不是我熟悉的 Form Data
,而是 Request Payload
。如图注意下面两个请求的 Content-Type
的区别。
Request Payload 请求
Form Data 请求
了解这两个的区别之前,我们先回顾下 HTTP 请求报文格式:
Request Payload 大概格式如下,请求头部的 Content-Type: application/json
,并且请求正文是一个 json 格式的字符串
Form Data 大概格式如下,请求头部的 Content-Type: application/x-www-form-urlencoded
,并且请求正文是类似 get 请求 url 的请求参数
解决方案:在method: "post"后面加上contentType : "application/x-www-form-urlencoded"
作者:RichardCui
出处:https://www.cnblogs.com/yachao1120/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。该文章也同时发布在我的独立博客中-RichardCuiBlog。