vue.config.js中配置代理(devServer)不生效的坑(跨域问题处理

导读:本篇文章讲解 vue.config.js中配置代理(devServer)不生效的坑(跨域问题处理,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

尚硅谷的后台管理系统,用户与商品信息用的接口端口号不一样。需要配置多个proxy代理

报错:

以下是我一开始配置的第2个代理,注意了第二个名字叫:’/dev-apisku’:

 proxy: {
      //代理跨域
      '/dev-api': {
        target: 'http://39.98.123.211:8170', //获取登录用户信息
        changOrigin: true,
        pathRewrite: {'^/dev-api': ''}
      },
      '/dev-apisku': {
        target: 'http://39.98.123.211:8510', //获取品牌
        // target: 'http://39.98.123.211:8416', //获取品牌
        changOrigin: true,
        pathRewrite: {'^/dev-apisku': ''}
      }
    }
  },

运行时报错提示404:

vue.config.js中配置代理(devServer)不生效的坑(跨域问题处理

 对了一下接口路径没有问题,postman测试接口也OK。vue.config.js中配置代理(devServer)不生效的坑(跨域问题处理

 

原因分析:

是我大意了,浪费了一个小时,vue.config.js在匹配’/dev-api’这个前缀之后,就走了第一个代表。但是我需要的是第二个代理。

解决:

把’/dev-apisku’ 改成不是’/dev-api’开头的即可。

我是把它改成了:/apisku, 然后发送axios请求拦截配置baseurl 地址同步更新一下

 proxy: {
      //代理跨域
      '/dev-api': {
        target: 'http://39.98.123.211:8170', //获取登录用户信息
        changOrigin: true,
        pathRewrite: {'^/dev-api': ''}
      },
      '/apisku': {
        target: 'http://39.98.123.211:8510', //获取品牌
        // target: 'http://39.98.123.211:8416', //获取品牌
        changOrigin: true,
        pathRewrite: {'^/apisku': ''}
      }
    }
  },
const service = axios.create({
  baseURL: '/apisku', // url = base url + request url
  // withCredentials: true, // send cookies when cross-domain requests
  timeout: 5000 // request timeout
})

运行成功:

vue.config.js中配置代理(devServer)不生效的坑(跨域问题处理

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/101529.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!