Axios的两种请求类型的区别( application/json;charset=utf-8 、x-www-form-urlencoded)

本文介绍了在前端使用Axios时,请求头中的Content-Type的重要性。Content-Type定义了参数传递的方式,错误的类型可能导致接口调用失败。作者通过一个实际案例,分享了在Vue项目中遇到401错误,最终发现是请求类型与后端接口不匹配的问题。解决方案包括全局和局部修改Axios的默认请求类型,并调整传参格式。文章强调了Content-Type与传参格式的对应关系,提醒开发者注意两者需保持一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

问:Axios中(请求头中里面的)请求类型(Content-Type)是做什么的?

答:前端在请求接口(api)服务时,需要将api所需要的参数传递给后端,那么使用何种方式传参给api,就是由请求类型定义的,请求类型就是一个规范,这个规范由后端同事在写接口时定义好的,所以前端需要请求接口时,需要保持请求类型和传参的格式与后端接口定义的一致,否则请求接口不成功!

亲身体验

1.在vue项目中使用axios请求登陆api接口时,请求返回状态码401?当时第一时间以为是token失效?想着不对劲,感觉应该是参数问题,仔细对比后未果,

2.将问题反馈给后端同事,后端同事让我这边截图下api的请求头,最后发现我这边的请求类型与后端那边接口的请求类型不一致,后端接口请求类型:x-www-form-urlencoded类型,而我这边 :application/json;charset=utf-8(注:axios默认的请求类型)

3.将项目中axios的默认请求类型修改成x-www-form-urlencoded类型,修改传参格式(浏览器url传参方式:api名称后,使用?拼接参数,例如:‘xxx/api/login?username=’+name+’&password=’+u_password)。

3.1 如何修改axios的默认请求类型?
3.1.0 全局修改:
vue项目main.js入口文件中,引入axios后:axios.defaults.headers.post[‘Content-Type’] = ‘application/x-www-form-urlencoded’;
3.1.1 单个请求内修改: {headers:{‘Content-Type’:‘application/x-www-form-urlencoded’}}
3.1.2axios.create里面定义对象,然后去对象下的headers下赋值即可!
在这里插入图片描述

结语

1.Content-Type: application/x-www-form-urlencoded:注意关键字urlencoded,浏览器url传参方式,一般使用?拼接参数,
在这里插入图片描述
在这里插入图片描述

2.Content-Type: application/json :注意关键字JSON,一般前端传参(参数的格式):对象类型
在这里插入图片描述
在这里插入图片描述

记住一句话:请求类型对应的传参格式是不一样,所以修改请求类型后,也要注意修改传参格式!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值