在使用axios进行参数获取时,始终获取不到,但是调用postman是正常的,所以初步估计是参数格式不正确,那么正确的应该怎么写呢?一般按照正常的逻辑,我们在传递application/x-www-form-urlencoded时,参数应该这样...
在使用axios进行参数获取时,始终获取不到,但是调用postman是正常的,所以初步估计是参数格式不正确,那么正确的应该怎么写呢?
一般按照正常的逻辑,我们在传递application/x-www-form-urlencoded时,参数应该这样写,但实际操作中发现一只获取不到参数。
axios
.create({
baseURL: 'url',
timeout: 10000,
headers: { 'Content-Type': 'application/json' },
})
.post(
'xxx/xxx/xxx',
JSON.stringify({
name: '',
age: 12,
}),
{
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
}
)
.then(function(response) {
console.log(JSON.stringify(response))
})
.catch(function(error) {
console.log(error)
})
方法一:添加两句代码,就可以正常获取
var qs = require('qs');
然后把JSON.strinify改为qs.stringify就可以了。
const qs = require('qs')
axios
.create({
baseURL: 'url',
timeout: 10000,
headers: { 'Content-Type': 'application/json' },
})
.post(
'xxx/xxx/xxx',
qs.stringify({
name: '',
age: 12,
}),
{
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
}
)
.then(function(response) {
console.log(JSON.stringify(response))
})
.catch(function(error) {
console.log(error)
})
方法二:开发中遇到的post请求头application/x-www-form-urlencoded的请求(URLSearchParams来解析)
api中定义
new一个URLSearchParams把需要的传参append添加进去,就可以获得data了
const param = new URLSearchParams();
param.append("merchantId", merchantId);
param.append("no", no);
const data = await apiOrder(param)
if(data.code==200){
this.$toast.success('确认订单开机成功')
}else{
this.$toast.fail('开机失败')
}
沃梦达教程
本文标题为:vue post application/x-www-form-urlencoded传参的解决方案
基础教程推荐
猜你喜欢
- Ajax+smarty技术实现无刷新分页 2022-12-15
- 使用ajax跨域调用springboot框架的api传输文件 2023-02-23
- 在实战中可能碰到的几种ajax请求方法详解 2023-02-01
- uniapp开发微信小程序自定义顶部导航栏功能实例 2022-10-21
- HTML clearfix清除浮动讲解 2022-11-20
- JS滚动到顶部踩坑解决记录 2023-07-10
- cocos creator游戏实现loading加载页面,游戏启动加载动画 2022-10-29
- 关于Ajax跨域问题及解决方案详析 2023-02-23
- Javascript Bootstrap的网格系统,导航栏和轮播详解 2023-08-11
- Ajax发送和接收请求 2022-12-15