配置环境变量和跨域

前言:项目开发的时候,一般会有多个环境,比如开发环境,测试环境,生产环境,我们调用接口的时候,不同环境调用不同的接口,所以要配置环境,方便访问.

配置环境

1.方式01

在项目中找到项目发送请求的文件,在这里我的是/src/api/request.js文件

在request.js中配置请求数据的地址

let env = process.env.NODE_ENV;
let baseURL;
// 开发环境
if (env === "development") {
  baseURL = "http://localhost:3003";
} else {
  baseURL = "http://huruqing.cn:3003";
}

const service = axios.create({
  // 如果换了新的项目, 需要更换为新的接口地址
  baseURL: baseURL,
  timeout: 50000, // 请求超时时间(因为需要调试后台,所以设置得比较大)
});

2.方式02

2-1:在根目录添加env文件,配置环境变量

根目录下新建文件

开发环境.env.development

//内容
VUE_APP_URL="http://192.168.2.21:3003"

生产环境.env.production

//内容
# 配置生产地址,就是你将来发布上线的地址
NODE_ENV="production"
VUE_APP_URL="http://81.71.65.4:3003"

2-2:在项目的任何一个地方,都可以通过process.env.VUE_APP_URL来获取

//axios配置地址

const service = axios.create({
  // 配置基本路径
  baseURL: process.env.VUE_APP_URL, 
  timeout: 50000, // 请求超时时间(因为需要调试后台,所以设置得比较大)
});

注意:使用env文件配置环境变量,缺点就是修改了地址,需要重启项目,所以我一般喜欢这样配置

process.env.NODE_ENV的值在开发中是"development", 在打包之后(生产), 它的值是"production", 下面的配置确定了生产环境的地址, 至于开发时的环境就任由我们填写了, 当然有时还会有"测试环境", 是开发好之后提供给测试人员去测试的环境

let env = process.env.NODE_ENV;
let baseURL;
if (env === 'production') {
  baseURL = "http://huruqing.cn:3003";
} else {
  baseURL = "http://192.168.2.21:3003";
}

const service = axios.create({ 
  baseURL,
  timeout: 50000,  
});

配置跨域

1.首先在vue.config.js文件中

没有vue.config.js文件,就新建一个该名称的文件,先配置该文件

// vue.config.js里配置
devServer: {
    // 代理
    proxy: {
      // 只要请求地址有'api'都会匹配上
      "/api": {
        target: "http://81.71.65.4:3003",
        ws: true,
        // 允许跨域
        changeOrigin: true,
        pathRewrite: {
          "^/api": "", //通过pathRewrite重写地址,将前缀/api转为/
        },
      },
    }, 
  },

2.项目配置方法一

在写好发送请求的文件中配置,我这里是/src/api/request.js文件

// api/request.js 的配置
let env = process.env.NODE_ENV; // development-开发环境, production-生产环境
let baseURL = "";
env = 'test';
if (env === "production") {
  // 生产接口
  baseURL = "http://huruqing.cn:3003";
} else if (env==='test'){
  // 本地跨域访问服务器端接口
  baseURL = '/api';
} else {
  // 开发环境接口(或者访问模拟数据接口)
  baseURL = "http://192.168.2.21:3003";
}

const service = axios.create({ 
  baseURL,
  timeout: 50000  
});

3.项目配置方法二

使用了env文件,将.env.development文件内容进行简单的修改即可

VUE_APP_URL="/api"

注意:请求接口时,网络查看依然是本地的地址,实际上请求的却是跨域里配置的地址

比如请求一下接口:

//该页面需要先导入axios
$axios.post('/api/product/list')

查看网络请求,查看到的是http://localhost:8080/api/product/list,但是实际上是通过代理请求proxy的地址是http://81.71.65.4:3003/product/list,"api"被重写成了"",所以接口就没有api这个字符串了

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,667评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,361评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,700评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,027评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,988评论 5 361
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,230评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,705评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,366评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,496评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,405评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,453评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,126评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,725评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,803评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,015评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,514评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,111评论 2 341

推荐阅读更多精彩内容