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脚本调试方法小结
Nov 24 Javascript
利用javascript/jquery对上传文件格式过滤的方法
Jul 25 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
Dec 07 Javascript
js实现一个省市区三级联动选择框代码分享
Mar 06 Javascript
jquery+json实现数据列表分页示例代码
Nov 15 Javascript
javascript中的循环语句for语句深入理解
Apr 04 Javascript
jQuery EasyUI 入门必看
Jun 03 Javascript
任意Json转成无序列表的方法示例
Dec 09 Javascript
vue-router实现tab标签页(单页面)详解
Oct 17 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 jQuery
基于vue-ssr的静态网站生成器VuePress 初体验
Apr 17 Javascript
jQuery实现的导航条点击后高亮显示功能示例
Mar 04 jQuery
微信小程序出现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
php 求质素(素数) 的实现代码
2011/04/12 PHP
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
php中获得视频时间总长度的另一种方法
2011/09/15 PHP
PHP __autoload()方法真的影响性能吗?
2012/03/30 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
javascript 打印内容方法小结
2009/11/04 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
jQuery的css() 方法使用指南
2015/05/03 Javascript
JQuery+CSS实现图片上放置按钮的方法
2015/05/29 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
2016/08/01 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
python实现探测socket和web服务示例
2014/03/28 Python
python开发之str.format()用法实例分析
2016/02/22 Python
深入解析Python中的上下文管理器
2016/06/28 Python
用python3教你任意Html主内容提取功能
2018/11/05 Python
Flask配置Cors跨域的实现
2019/07/12 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
2021/02/06 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
Nike台湾官方商店:Nike.com (TW)
2017/08/16 全球购物
JBL英国官网:JBL UK
2018/07/04 全球购物
PHP面试题及答案一
2012/06/18 面试题
幼儿园教师获奖感言
2014/03/11 职场文书
2014房屋登记授权委托书
2014/10/13 职场文书
公司优秀员工推荐信
2015/03/24 职场文书
银行自荐信范文
2015/03/25 职场文书
2016年敬老月活动总结
2016/04/05 职场文书
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫
APP界面设计技巧和注意事项
2022/04/29 杂记