axios的post请求问题

用ajax可以请求,在vue中不可以,报的应该是签名错误,我在jq中也是这个,还是我post格式不对,求解
image.png

image.png

阅读 6k
8 个回答

image.png

看样子像是 axios (this.$axios) 配了 transformRequest 把传入的数据再转了一次 JSON。所以应该直接给数据,不要 this.$qs.stringify 就好了。

image.png

你看你的 data 都是两个引号了,肯定格式是不对的

你把jquery的截图看一下bodycontent-type,然后axios模拟一下就OK了

签名错误让后台一起排查下;看下是报的什么签名错误,还是对参数校验了,序列化一般是需要转json字符串;你这个应该不用转;

第二个参数不要用qs.stringify;直接用data;

axios.post('/user/12345', {
name: 'new name'
}, {
cancelToken: source.token
})

官网的例子

this.$axios.post('xxx',qs.stringify(data),{
 headers:{
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
 }
})

你可以打印一下你的qs.stringify(data)看看,应该是结果里他前后都带了双引号,所以引号作为参数传出去了

你可以直接用data,或者传个FormData

const formData = new FormData()
Object.keys(data).forEach((key) => {
    formData.append(key, data[key])
})

image.png
为什么报签名验证失败,求解,这个接口用ajax进行请求不会报错

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题