vue中使用axios跨域的问题

发布于 2022-09-11 19:14:22 字数 1538 浏览 28 评论 0

最近写了一个登录,用的axios,后端是node,跨域请求传过去404,麻烦大佬帮我看看哪里错了。

这是按钮的submit方法

   submit: function () {
  this.$http.post('/api/user/login', {
    username: this.user.username,
    password: this.user.password
  }).then((response) => {
    console.log('response.body.success=' + response.body.success)
  }).catch((error) => {
    console.log(error)
  })
}

main.js里配置如下

import axios from 'axios'
Vue.prototype.$http = axios

config.index.js中配置已经加上了

// 设置地址映射表
proxyTable: {
  '/api': {
    target: 'http://127.0.0.1:3000', // 目标地址
    changeOrigin: true,
    pathRewrite: {
      '^/api': '' // 将目标地址变成这个
    }
  }
}

dev.env.js中配置如下

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',  //开发环境
  API_HOST:"/api/"
})

prod.dev.js生产环境配置(其实我就是在本地弄得,)

module.exports = {
  NODE_ENV: '"development"',
  BASE_API: '"http://localhost:9800/"',
  API_HOST: "/api/",
  APP_ORIGIN: '"http://localhost:9800"'
}

后端node中接收请求的是user.js(node小白,所以也不知道是不是后端的问题)

router.post('/api/login', function(req, res, next) {
  res.send('respond with a resource');
});

后端的端口是3000,前端是8080
node目录如下:

clipboard.png

这是chrome上的请求情况,我也很奇怪这里为什么路径还是localhost:8080/user/login;不应该是/api/user/login吗

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

挽手叙旧 2022-09-18 19:14:22

把pathRewrite删了

最舍不得你 2022-09-18 19:14:22

粗略扫了一眼你不是跨域问题是代理那块出了问题,不理解代理的配置就不要去动那一块了,前端的base api 直接写成本地后端服务就得了比如:http:localhost:8080,然后后端开启跨域访问。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文