Ajax 请求头中常见content-type(Ajax发送请求的请求体数据的编码格式)--转载

1、HTTP规范

  1. HTTP 协议规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。
  2. 协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足上面的格式就可以。
  3. 但是,数据发送出去,还要服务端解析成功才有意义。一般服务端语言如Java 等,以都内置了自动解析常见数据格式的功能。服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。
  4. 所以说到 POST 提交数据方案,包含了 Content-Type 和消息主体编码方式两部分。

2、ajax中POST请求中的Content-Type

ajax请求体的几种类型:

(1)application/x-www-form-urlencoded

1,很多时候,我们用 Ajax 提交数据时,也是使用这种方式。
  例如 JQuery的 Ajax,Content-Type默认值都是「application/x-www-form-urlencoded;charset=utf-8」。

2,如果你用js写ajax要用这种方式,一定要注意加上setRequestHeader(“Content-type”,“application/x-www-form-urlencoded”);否则服务端无法正常解析。
  

(2),multipart/form-data这也是一个常见的 POST 数据提交的方式。

【注意】上面提到的这两种 POST 数据的方式,都是浏览器原生支持的,而且现阶段原生 form 表单也只支持这两种方式,但是随着越来越多的 Web 站点,尤其是 WebApp,全部使用 Ajax 进行数据交互之后,我们完全可以定义新的数据提交方式,给开发带来更多便利。

(3)application/json

JSON 格式支持比键值对复杂得多的结构化数据,这一点也很有用。

(4)text/xml

相比于JSON,XML不能更好的适用于数据交换,它包含了太多的包装, 而且它跟大多数编程语言的数据模型不匹配,让大多数程序员感到诧异。

XML是面向数据的,JSON是面向对象和结构的,后者会给程序员一种更加亲切的感觉。

下面就是ajax Content-Type为text/xml的请求:

例子:

转载于:https://blog.csdn.net/qq_38737586/article/details/99629349

没弄明白的问题:请求体不同获取不到数据,怎么和后端协商修改

https://blog.csdn.net/zhuwei_clark/article/details/84073100

https://blog.csdn.net/qq_33228032/article/details/79192177

https://blog.csdn.net/dgecbc1857/article/details/102235319

猜你喜欢

转载自www.cnblogs.com/yizhilin/p/12897612.html