Vue 配置代理以解决跨域问题

前言
跨域一直是一个在开发中很让人头疼的问题,解决跨域的方式有很多,后端和前端都有自己的解决方式,后端的话主要是在响应头里面添加信息,而前端主要是以代理的方式去进行解决,说白了就是将我们发送的请求交给跟我们同源的服务器,然后由他来做一个中转。其实,vue的代理是 借助vue静态服务器来实现的,使用的是 http-proxy-middleware 这个模块。
原理大概就是这样,配置起来其实还是蛮简单的。
在vue.config.js中配置

假设我们的项目运行在localhost:3000上,现在我们想发送请求到localhost:8000
module.exports = {
    proxy: {
      "/api": {
        // 以 “/api” 开头的 代理到 下边的 target 属性 的值 中
        target: http://localhost:8000,
        changeOrigin: true, // 是否改变域名
        ws: true,
        pathRewrite: {
          // 路径重写(以正则的规则去写)
          "^/api": "" 
        }
      }
    }
};

注意:关于路径重写,它的作用我们可以举一个例子来理解,上面我们配置的代理,会将所有已/api开头的请求给拦截,由代理服务器发送到8000端口上,这个/api是为了让我们区分请求是否需要代理而加上去的,8000端口上的实际接口倘若不是以/api开头的话,那么必然会报404,所以我们要将/api给替换为空字符串才可以

当我们需要向多台服务器进行代理时,可按照以下方式配置代理

module.exports = {
    proxy: {
      "/api1": {
        // 以 “/api1” 开头的 代理到 下边的 target 属性 的值 中
        target: http://localhost:8000,
        changeOrigin: true, // 是否改变域名
        ws: true,
        pathRewrite: {
          // 路径重写(以正则的规则去写)
          "^/api1": "" 
        }
      },
      "/api2": {
        // 以 “/api2” 开头的 代理到 下边的 target 属性 的值 中
        target: http://localhost:8001,
        changeOrigin: true, // 是否改变域名
        ws: true,
        pathRewrite: {
          // 路径重写(以正则的规则去写)
          "^/api2": "" 
        }
      }
    }
};

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值