Vue3.0 axios开发环境代理和线上代理设置

大兔子大兔子 提交于 2019-12-25 08:32:00

1、概述

前后端分离的情况下肯定会跨域,这篇文章主要讲axios跨域的设置

2、本地开发环境配置

在项目的根路径下新建vue.config.js,一定是根路径,和src同级(这个坑我躺过,很舒服)

module.exports={
  //publicPath:"./" //线上环境添加,否则访问返回类似这样开头的内容 data:dfsjfskdjflksjfksjfla
 devServer:{
        port:'8088', //指定前端访问的端口号
        proxy:{
            '/api': {
                target: 'http://localhost:8081/api',//代理地址
                changeOrigin: true,//是否允许开启代理
                pathRewrite: {//代理地址重写
                  '^/api': ''
                }
        }
        
    }
}
}

在main.js加入如下代码,省去每次写接口前缀

axios.defaults.baseURL = "/api"

下面是访问的

this.$axios.get("liuliang").then(res => {
      //window.console.log(res.data.data.instances);
      this.liuliang=res.data.data.instances
    });

目标地址:http://localhost:8081/api/liuliang
项目地址:http://localhost:8080/api/liuliang

2、线上环境配置

用nginx作反向代理,不用本地代理了

main.js 替换baseURL

axios.defaults.baseURL = "http://地址或域名:8088/api/"  //正式环境url

nginx.conf

server {
        listen       8088;
        server_name  localhost;

        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
        location ^~ /api/ {
          #rewrite  ^/api/(.*)$ /$1 break;  
          proxy_pass http://ip或域名:8081;

        }
 }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!