vue解决跨域问题-反向代理Proxy

6 篇文章 0 订阅
5 篇文章 1 订阅

 浏览器有同源策略,限制同协议、同域名、同端口,只要有一项不一致,就是跨域。(不同源则跨域)

解决方案: 后端 、CORS 、JSONP、 反向代理Proxy

        同源下:浏览器向服务器请求数据,服务器响应数据给浏览器

        不同源下:浏览器向服务器发送请求数据,服务器处理后,发现此浏览器和我并不遵守同源策源,不安全,就不会把处理后的数据响应给浏览器,浏览器无法获取数据

反向代理解决跨域方法:

        1、浏览器向代理服务器发送请求

        2、代理服务器请求真正的服务器

        3、真正的服务器将数据响应给代理服务器

        4、代理服务器再将得到的数据交给浏览器

        总的思想就是做一个代理服务器,他的基地址路径手动设置为和服务器的路径一致,来作为两者之间的中间人,转交数据

在Vue CLI中,脚手架已经创建了反向代理的方法devServer.proxy

配置参考 | Vue CLI (vuejs.org)

做法在vue.config.js中devServer下proxy内设置真正的请求地址

module.exports = {
  devServer: {
    proxy: {
      '/api': {  //这里的api 表示如果我们的请求地址有/api的时候,就触发代理机制
        target: ' url根地址 ',  // 我们要代理请求的真正地址
      },
    }
  }
}

在axios的预配置文件内将baseURL设置为与服务器的地址相同

//此为所有的请求接口都在/api路径下,也可将/api放至具体的请求接口内
//http://localhost:8080便是代理服务器用的地址,和服务器相同
//baseURL: 'http://localhost:8080/api',   //可优化至下面写法
 baseURL: '/api', // 未配置指定协议和域名,浏览器执行时会自动将地址与基地址拼接

发送一个请求,代理服务器就会发生作用,传接数据

浏览器

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值