Vue学习笔记-配置代理服务器(用于解决跨域问题)

本文介绍了在Vue项目中如何通过前端配置proxyTable解决跨域问题,包括两种方法:一是简单配置单个代理,二是配置多个代理并使用路径前缀控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言-跨域问题

跨域问题指的是在 Web 应用程序中,由于同源策略的限制,导致浏览器无法发送跨域请求,也无法获取跨域响应的问题。同源策略是浏览器的一种安全策略,它要求 Web 应用程序只能访问与当前页面具有相同协议、主机名和端口号的资源。

如果不同源的 Web 应用程序需要通信,就需要进行跨域请求。但由于同源策略的限制,浏览器不允许跨域请求。在此情况下,如果前端需要访问其他域名下的资源,就会出现跨域问题。

为解决跨域问题,可以由前端(或者后端)来进行相应配置。这里来介绍前端Vue项目配置代理服务器来解决跨域问题的方法

Vue脚手架配置代理服务器

方法一

在vue.config.js中添加如下配置:

devServer:{
    //填写代理服务器需要代理的服务器IP地址(一般是后端服务器地址,精确到端口号)
    proxy:'http://localhost:4399'
 },

说明

  • 优点:配置简单,请求时,直接发给前端(8080)即可
  • 缺点:无法配置多个代理,无法灵活地控制请求是否走代理
  • 工作方式:当请求了前端不存在的资源时,才会将请求转发给服务器(优先匹配前端资源)

方法二

在vue.config.js中添加如下配置:

//开启代理服务器,用于解决跨域问题(方法2)
  devServer:{
    proxy:{
      '/myPrefix':{/*当请求url包含此前缀时,会走代理服务器(注意:前缀跟在端口号后面)*/
        target:'http://localhost:4399', /*代理服务器需要代理的服务器IP地址*/
        pathRewrite:{'^/myPrefix':''}, /*路径重写,用于去掉前缀*/
        ws : true, /*用于支持websocket*/
        changeOrigin : true, /*用于控制请求头中的‘Host’值,为true则撒谎,对应的值为target中的值(对'关于请求的发起者是谁'这件事是否说谎)*/
      },
      /*
      changeOrigin 为true时,服务器收到的请求头Host值为localhost:4399
      changeOrigin 为false时,服务器收到的请求头Host值为localhost:8080(Vue前端服务器端口号)
      changeOrigin默认为true
      */
      '/demo':{
        target: 'http://localhost:4398',
        pathRewrite: {'^/demo':''},
        ws : true,
        changeOrigin: true
      }
    }
  }

说明:

  • 优点:可以匹配多个代理服务器,通过添加前缀的方式来控制是否需要走代理服务器
  • 缺点:配置繁琐,请求时必须添加前缀
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值