我正在开发的项目前端和后端是完全独立的,通过配置 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 的请求参数