vue开发环境配置跨域的方法步骤


Posted in Javascript onJanuary 16, 2019

本文要实现的是:使用vue-cli搭建的项目在开发时配置跨域,上线后不做任何任何修改,接口也可以访问

production:产品 生产环境

development:开发 开发环境

1.开发环境设置跨域使用工具:

  • vue-cli自带的配置配置
  • 目录 /config/index.js

vue开发环境配置跨域的方法步骤

//自行复制黏贴
proxyTable: {
 '/apis':{
 target: 'http://10.1.63.26:19080/', // 后台api
 changeOrigin: true, //是否跨域
 // secure: true,
 pathRewrite: {
  '^/apis': '' //需要rewrite的,
 }
 }
}

注意:以上配置只有在生产环境下有效,你打包之后就不起作用了

这样就存在一个问题,你的接口都是/apis开头的,打包之后部署到服务器要去除/apis,才能正常访问后台接口,如何解决呢?

2.生产环境设置跨域

使用工具 axios 中文文档地址

思路

解决的思路是这样的:

首先,axios有一个baseURL的属性,配置了baseURL之后,你访问接口时就会自动带上

假设你vue-cli起了一个开发环境,地址为http://localhost:8080
//例1 当不设置baseURL时
axios.get('/user') //访问/user相当于访问 http://localhost:8080/user

//例2 
axios.baseURL='/apis'
axios.get('/user') //访问/user就相当于访问 http://localhost:8080/apis/user

//例3
axios.baseURL='https://sbsb.com'
axios.get('/user') //访问/user就相当于访问 https://sbsb.com/user

//例4
axios.baseURL='https://sbsb.com/apis'
axios.get('/user') //访问/user就相当于访问 https://sbsb.com/apis/user

然后我们要根据现在的环境是开发环境还是生产环境,配置不同的baseURL

//判断是否是生产环境
var isPro = process.env.NODE_ENV === 'production' //process.env.NODE_ENV用于区分是生产环境还是开发环境
//配置不同的baseURL
module.exports = {
 baseURL: isPro ? 'http://sbsb.com:8888/' : '/apis'
}

process.env.NODE_ENV用于区分是生产环境还是开发环境,这个值是webpack设置的

动手操作

假设后台api的rul是http://sbsb.com:8888/

首先在/config目录下新建一个文件,我这里叫api.config.js

写入以下代码

//判断是否是生产环境
var isPro = process.env.NODE_ENV === 'production' //process.env.NODE_ENV用于区分是生产环境还是开发环境
//根据环境不同导出不同的baseURL
module.exports = {
 baseURL: isPro ? 'http://sbsb.com:8888/' : '/apis'
}

然后,在main.js中引入axios和刚才那个文件

//main.js
import Vue from 'vue'
import axios from 'axios'
import apiConfig from '../config/api.config.js'
axios.baseURL=apiConfig.baseURL
//axios的其他配置...

这样配置之后,打包部署到服务器上也不用再手工去除/apis

如果配置过程中出现了问题,自己调试,看看访问的url正不正确

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
改变javascript函数内部this指针指向的三种方法
Apr 23 Javascript
JQuery动画animate的stop方法使用详解
May 09 Javascript
纯js模拟div层弹性运动的方法
Jul 27 Javascript
谈谈JavaScript异步函数发展历程
Sep 29 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
May 17 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
Dec 22 Javascript
详解vue-cli脚手架中webpack配置方法
Aug 22 Javascript
mpvue中使用flyjs全局拦截的实现代码
Sep 13 Javascript
vue+高德地图写地图选址组件的方法
May 18 Javascript
JavaScript对象原型链原理解析
Jan 22 Javascript
vue+Element中table表格实现可编辑(select下拉框)
May 21 Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
Sep 08 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
Jan 16 #Javascript
在Create React App中启用Sass和Less的方法示例
Jan 16 #Javascript
在Create React App中使用CSS Modules的方法示例
Jan 15 #Javascript
Vue 样式绑定的实现方法
Jan 15 #Javascript
在vue使用clipboard.js进行一键复制文本的实现示例
Jan 15 #Javascript
2019 年编写现代 JavaScript 代码的5个小技巧(小结)
Jan 15 #Javascript
mock.js实现模拟生成假数据功能示例
Jan 15 #Javascript
You might like
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
使用jQuery和PHP实现类似360功能开关效果
2014/02/12 Javascript
原生javascript实现的分页插件pagenav
2014/08/28 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
javascript 封装Date日期类实例详解
2017/05/28 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
python中文乱码的解决方法
2013/11/04 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
django2 快速安装指南分享
2018/01/05 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
python实现连连看游戏
2020/02/14 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
python安装cx_Oracle和wxPython的方法
2020/09/14 Python
css3 box-sizing属性使用参考指南
2013/01/08 HTML / CSS
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
大学生学习党课思想汇报
2014/01/03 职场文书
会计电算化学生个人的自我评价
2014/02/08 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
中学生家长评语大全
2014/04/16 职场文书
亲子活动总结
2014/04/26 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
python实战之用emoji表情生成文字
2021/05/08 Python
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
小程序实现文字循环滚动动画
2021/06/14 Javascript
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL