搞定vue项目开发环境下的跨域代理

跨域知识

同源政策

1.三同
协议相同 (比如:http://)
域名相同 (比如:www.baidu.com)
端口相同 (比如:80,默认情况下是可以省略的)
2.目的
  • 保证用户信息的安全,防止恶意的网站窃取数据
3.限制范围
1.Cookie、LocalStorage 和 IndexDB 无法读取

2.DOM 无法获得

3.AJAX 请求不能发送

跨域产生

产生跨域的原因就是不同源的请求违反了浏览器里的同源政策

vue跨域代理详解

解决跨域的方法是非常多的,像jsonp,cors,node代理,等等之类的,在这里主要介绍vue项目中自带的代理跨域

vue 自带代理配置选项

老版本vue脚手架创建的项目的代理配置
  • 1.1找到config这个文件下的index.js

  • 1.2找到module.exports中的dev属性里的proxyTable

  • 1.3写入代理配置

    module.exports = {
      dev: {
        // Paths
        assetsSubDirectory: 'static',
        assetsPublicPath: '/',
        proxyTable: {
          //所代理的字段  
          "/api": {
            //会产生跨域的接口地址,填基本的地址就好了
            target: "http://150.158.182.131:8080",
            changeOrigin: true,
            //重写代理的路径
            pathRewrite: {
                //就是用""来代替/api,就可以不用写api了
                "^/api": ""
            }
        }
        }
      }
    
  • 1.4在请求的时候这样写

    //这样的接口请求
    // http://150.158.182.131:8080/api/post/login
    axios.post('/api/post/login')
    
  • 1.5重启项目配置生效

新版本vue脚手架的代理配置
  • 1.1新版本的项目下没有了以往的配置文件,所以在根目录下创建一个vue.config.js文件

  • 1.2跟老项目一样,写入module.exports = {}

  • 1.3写入以下配置

    devServer: {
            proxy: {
                '/api': {
                    target: 'http://150.158.182.131:8080', 
                    ws: true,  //代理websockets
                    changeOrigin: true, // 虚拟的站点需要更管origin
                    pathRewrite: {  
                        '^/api': ''
                    }
                }
            }
        }
    
  • 1.4请求方法跟老版本一样,重启项目生效

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值