1. 关于Content-Type
Content-Type(MediaType),即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。response.Header里常见Content-Type一般有以下四种:
1) application/x-www-form-urlencoded
i. 这是最常见的Content-Type,form表单默认的就是这种方式。当请求方式为get 请求时,浏览器会用application/x-www-form-urlencoded的方式把form表单数据转换成一个字符串(key1=value1&key2=value2...),然后将这个字符串追加到url后面,并且以问号分割;当请求方式为post请求时,且表单中没有type=file类型的控件时,Content-Type也将采用此编码方式,form数据将以key:value键值对的方式传给server.
2) multipart/form-data
i. 当请求方式为post请求时,且表单中有type=file类型的控件时采用此种编码方式。
3) application/json
i. 前端使用 json 格式的方式传递参数
4) text/xml
i. XML-RPC(XML Remote Procedure Call)。它是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范。soapUI等xml-rpc请求的参数格式.
2. 关于@RequestParam和@RequestBody的区别
1)若后端使用@RequestParam 来接收前端传过来的参数的,Content-Type要设置为application/x-www-form-urlencoded,并且需要对data使用qs.stringify来进行转换;
2)若后端使用@RequestBody 来接收前端传过来的参数的,Content-Type要设置为application/json;