1.场景
前阵子公司接回了一个旧的项目,刚开始的时候没有注意看前端设置的content-type,然后与后端同事进行接口联调的时候就,有时候发现数据就是对不上,后面看了一下代码中的axios请求相关设置,才发现是自己走坑了!主要是在请求拦截和响应拦截这块的处理,请求拦截这块是设置了默认的请求content-type是使用application/x-www-form-urlencoded
2.学习
基本概念
content-type既会出现在http请求的请求头中,也会出现在响应头上。当出现在在请求头的时候,作用是告诉服务器实际发送什么类型的数据。当出现在响应头的时候,服务器告诉客户端返回了什么类型的数据。
3.实际运用
一般情况下,我们可以在请求拦截中设置默认的请求content-type,如下面,如果你在定义请求的没有指定content-type,那么会走这个请求拦截的时候会设置默认的content-type,这里设置为application/x-www-form-urlencoded,这时候,如果后端要求前端传递的数据类型是application/json,那就回导致你发送给后端同事的数据类型和他想接受的数据类型是不一致的!因此,这个默认的设置一般要跟后台同时协商来定(我这里是因为后台项目是由两个人开发的,刚开始那个的开发吸管是使用application/x-www-form-urlencoded,后面的同时习惯用application/json)
接着,我尝试把这个默认改成application/json的时候,之前开发的一些模块就会出错了,因为之前模块的请求content-type是需要以application/x-www-form-urlencoded的方式发送的。当然,如果你还想要以application/json的数据类型发送给后端怎么办呢?下面举例说明使用axios使用post请求,执行请求头的content-type为application/json格式,请求参数放在body中
结果:
文章来源:https://www.toymoban.com/news/detail-527988.html
文章来源地址https://www.toymoban.com/news/detail-527988.html
到了这里,关于Http请求中的Content-Type的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!