【】POST、GET、RequestParam、ReqestBody、FormData、request payLoad简单认知

背景:

  使用vue+axios方式代替ajax后向后台发送数据出现问题了,controller获取不到数据。然后查、找、查、找中似乎找到一些门道。以下列出总结性的东西来记录自己的思考成果,仅供参考,不保证正确性,欢迎指正。


① get方式的请求是没有请求体的。但是get有query string parameter 这就是url?之后的一串东西。post请求发现了两种请求体。一种是FromData形式的请求体,一种是request payload形式的。这个可以F12查看network详细。

② post请求体是通过请求头中的Content-Type来区分的:formData形式的Content-Type为application/x-www-form-urlencoded ;而request payload形式的请求体Content-Type为application/json或multipart/form-data 

③ 使用@RequestBody注解接收request payload形式的请求体参数;使用@RequestParam注解接收formData形式的请求体参数。

④ 使用axios发送post请求时,使用序列化工具Qs.stringify()对data进行序列化。axios可以自动转换请求体形式。

⑤ 查询的时候,我是使用POST方式的request payload形式发送请求,后台使用@RequestBody注解进行接收。映射成Page对象或者直接map对象。

⑥ 单个删除的时候,使用DELETE方式。例如 user/del/{id}。然后后台用@PathVariable注解进行接收。

 ⑦ 批量删除的时候,使用DELETE方式。例如user/dels/{ids}。这里的ids是用逗号分隔成的字符串。后台用@PathVariable注解接收映射成List<String> ids形式的数据。

posted @ 2018-12-21 23:27  年轻的老魏  阅读(4532)  评论(0编辑  收藏  举报