Postman发送请求后端收不到Vue传的参数?

西门桂霞 阅读 15

我在用 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>
我来解答 赞 3 收藏
二维码
手机扫码查看
1 条解答
Top丶保艳
常见的解决方案是先检查 axios 请求配置。虽然你设置了 Content-Type 为 application/json,但有时候浏览器代理或者开发环境会干扰请求头设置。

建议直接在创建 axios 实例时全局设置默认 headers:
const axios = require('axios')
axios.defaults.headers.post['Content-Type'] = 'application/json;charset=UTF-8'


另外再检查下后端是否对跨域做了限制,特别是 Access-Control-Allow-Origin 设置。有时候即便参数发出去了,跨域问题也会导致数据被拦截。

最后确认下后端接收参数的方式,有些框架需要特别处理 JSON 格式的数据。比如在 Express 中,可能需要使用 body-parser 中间件:
const bodyParser = require('body-parser')
app.use(bodyParser.json())


这几个点都排查一遍应该就能找到问题所在了,调试这种前后端交互真是挺费劲的,我都折腾过好几次了。
点赞
2026-03-26 11:22