0

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

这是按钮的submit方法

   submit: function () {
  this.$http.post('/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吗

2 个回答
1

你请求的接口是 /api/user/login ,
你定义的路由是 /api/login , 或者 /user/api/login ?
路由定义错了吧,404

0

路由问题,你的接口地址是有api的,所以去掉 proxyTable 中的 pathRewrite 就可以了

撰写答案

推广链接