axios发送post请求时,这样的数据格式对吗
这是发出去的参数listQuery
listQuery: {
current: 1,
size: 20,
factoryName:"ddd",
address:"ddd"
},
getList() {
this.listLoading = true
getFactoryList(this.listQuery).then(response => {
// this.list = response.data.records
// this.total = response.data.total
})
},
这是getFactoryList
export function getFactoryList(params) {
return request({
url: '/factory/page',
method: 'post',
header:{
'Content-Type':'application/json' //如果写成contentType会报错
},
params
})
}
这里的getFactoryList里,需要设置content-type吗?axios默认就是它吧?然后发出的直接是对象会自动转化成json吗?这样在浏览器的呈现结果对吗?拼接在浏览器后面的不是get了吗,想确认如果post请求的话,该怎么改
============================================
找到了, 应该是用params的问题,改成了data,有没有详细解释一下这个
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(2)
姐不稀罕2022-09-19 23:29:58
最近好像挺多提的问题都是 parmas
传入的参数的形式。
getFactoryList(params) {
return request({
url: '/factory/page',
method: 'post',
header:{
'Content-Type':'application/json' // 请求格式请按照标准格式书写
},
params // 大部分的问题都在这里,你的 params 需要用 data 传入,axios 才能接收到
})
export function postAction (url, parameter) {
return axios({
url: url,
method: 'post',
data: parameter // 问题在这里
})
}
然后是默认值的问题 axios
的默认的 headers
内 ['Content-Type'] = 'application/x-www-form-urlencoded'
可以完整的读一下 Axios 的文档,
比如说 默认值 、实例配置项 以及 拦截器
最后贴一下 Ant-Design-Vue-Pro 封装的 Axios:
- ant-design-vue-pro/manage.js at master · vueComponent/ant-design-vue-pro
- ant-design-vue-pro/request.js at master · vueComponent/ant-design-vue-pro
已参与了 SegmentFault 思否「问答」打卡,欢迎正在阅读的你也加入。
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
axios 文档中有说。
其实你可以理解为想带在url上就用params
想放在body中就用data
url 上的话,只有一种格式。body中的话支持的格式就比较多了。json、formdata之类的
按照规范来讲,post还是应该把参数放入body中。