vue-cli3设置devServer好像不生效,请求报404

这是请求login.js

login(params) {
    return post('/user/login', params)
}

这是配置的接口地址config.js

axios.defaults.baseURL = '/api'

这个是代理的配置vue.config.js

devServer: {
  proxy: {
      '/api': {
          //要访问的跨域的域名
          target: 'http://www.xxxxx.cn/xxxxx', // 这里是公司的官网地址
          ws: true,
          secure:false, // 使用的是http协议则设置为false,https协议则设置为true
          changOrigin: true,
          pathRewrite: {
              '^/api': ''
          }
      }
  }

点击【登录】之后,报错是404
image.png
image.png
我理解的是,做了代理之后,请求URL应该换成公司官网才对呀?为什么我这里都没有换,这样404也正常吧。。。感觉是我的代理没用生效。

我还在vue.config.js里面加了输出语句,也没有输出,是哪个环节出了问题呢?还有就是如果没生效,那jquery应该会报错的,但却没有报错。。实在想不通哪里出问题了,,,求解决!!!
image.png


问题解决了,代理没问题,就是后端那边的问题,问题出在【使用/login接口时也需要前端的token】。已经修正了

另外,看代理有没有成功生效,可以在preview查看

把target值随便乱写一个
image.png
image.png

我这边的报错:
image.png
至少说明我的代理没问题。。。
然后再改改。。。发现是后端的问题的。。。。

阅读 13.6k
3 个回答

通过proxy只是将请求代理到target上,请求的url依旧是localhost
前端在所有的请求前面加上了/api,至于要不要pathRewrite还要看后台接口有没有以/api开头,如果没有才需要pathRewrite,将/api重写,否则不需要,报404路径错误,问你们后台的接口有没有带上/api

我故意写错target之后:
image.png
报错:
image.png

感觉应该是 pathRewrite 环节出了问题,你服务器上看看访问日志呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏