http请求中content-type的那些事儿

在jquery+ajax盛行的年代里,前后端交互实在太方便了,ajax发起一个请求就是这么简单

$.ajax({
    url:'',
    type:'post',
    data:{},//参数
    ...
})

久而久之,里面很多的细节都被我们忽略了,等到有一天,没有jquery ajax的时候,咦?怎么发起一个请求死活不成功,参数明明传递过去了,抓包都没有问题,但是后台就是取不到值,为何为何?因为任何请求的发起和接收,都需要前后端配合的,参数可能发了一个表单数据,可能是一个json对象,可能是一个字符串,后台怎么知道你发的是啥呢,我们会问,以前那么简单也没出问题啊,对,那是因为‘封装’了。发起一个请求,是需要设置请求头的,告诉服务端我们需要干嘛,接下来我们就先来详细介绍一下一个重要的请求头,content-type。

content-type请求头是干吗的呢,http请求头有四种类型,分别是通用头部,请求头部,响应头部以及内容头部,首先,我们要弄清楚,content-type是属于内容头部,既然是内容头部,那这个请求头是用来向接收端解释传递的该内容主体的,content-type的取值是告诉服务端,你传递过去的内容是啥,你应该准备好如何接收,这里,我们重点剖析一下其中几个取值,’application/json’,’application/x-www-form-urlencoded’,’multipart/form-data’。 
既然不同的类型,服务端接收方式是不同的,那前端发送方式必然也是有区别的咯,接下来一一作说明。 
首先,content-type的值是application/json的情况,传递的是一个json对象,并不是直接丢一个对象过去,需要进行序列化,JSON.stringify(data);如下图: 

--------------------- 
作者:shellJ 
来源:CSDN 
原文:https://blog.csdn.net/jiangcs520/article/details/70141901?utm_source=copy 

猜你喜欢

转载自blog.csdn.net/liuhua_2323/article/details/83031162