Postman发送请求后端收不到Vue传的参数?
我在用 Vue 写登录功能,前端用 axios 发 POST 请求,但后端用 Postman 测试时能收到参数,我本地开发却收不到,到底是哪儿出问题了?
我试过把 Content-Type 改成 application/json,也检查了请求体结构,看起来没问题啊……
<script>
export default {
methods: {
login() {
this.$axios.post('/api/login', {
username: 'test',
password: '123456'
}, {
headers: { 'Content-Type': 'application/json' }
})
}
}
}
</script>
建议直接在创建 axios 实例时全局设置默认 headers:
另外再检查下后端是否对跨域做了限制,特别是 Access-Control-Allow-Origin 设置。有时候即便参数发出去了,跨域问题也会导致数据被拦截。
最后确认下后端接收参数的方式,有些框架需要特别处理 JSON 格式的数据。比如在 Express 中,可能需要使用 body-parser 中间件:
这几个点都排查一遍应该就能找到问题所在了,调试这种前后端交互真是挺费劲的,我都折腾过好几次了。