详解vue-cli本地环境API代理设置和解决跨域


Posted in Javascript onSeptember 05, 2017

前言

我们在使用vue-cli启动项目的时候npm run dev便可以启动我们的项目了,通常我们的请求地址是以localhost:8080来请求接口数据的,localhost是没有办法设置cookie的。

我们可以在vue-cli配置文件里面设置一个代理,跨域的方法有很多,通常需要后台来进行配置。我们可以直接通过node.js代理服务器来实现跨域请求。

vue proxyTable接口跨域请求调试

在vue-cli项目中的config文件夹下的index.js配置文件中,dev长这样子:

dev: {
  env: require('./dev.env'),
  port: 8080,
  autoOpenBrowser: true,
  assetsSubDirectory: 'static',
  assetsPublicPath: '/',
  proxyTable: {},  
  cssSourceMap: false
 }

服务器提供的接口如果长这样https://www.exaple.com/server_new/login,我们把域名提取出来如https://www.exaple.com;

在config中新建一个文件命名为proxyConfig.js :

module.exports = {
 proxy: {
    '/apis': {  //将www.exaple.com印射为/apis
      target: 'https://www.exaple.com', // 接口域名
      changeOrigin: true, //是否跨域
      pathRewrite: {
        '^/apis': ''  //需要rewrite的,
      }       
    }
 }
}

config文件夹下的index.js引入proxyConfig.js:

var proxyConfig = require('./proxyConfig')

config文件夹下的index.js中的dev改成:

dev: {
  env: require('./dev.env'),
  port: 8080,
  autoOpenBrowser: true,
  assetsSubDirectory: 'static',
  assetsPublicPath: '/',
  proxyTable: proxyConfig.proxy,
  cssSourceMap: false
 }

重启项目npm run dev:

你会发现出现了这个

详解vue-cli本地环境API代理设置和解决跨域 

这个时候我们已经设置好了本地API代理了

修改本地hosts文件

文件路径一般是C:\Window\System32\drivers\etc,打开hosts文件,在这一段下面把localhost设置进去

# localhost name resolution is handled within DNS itself.
# 127.0.0.1    localhost
# ::1       localhost
127.0.0.1          activate.adobe.com
127.0.0.1          practivate.adobe.com
127.0.0.1          lmlicenses.wip4.adobe.com
127.0.0.1          lm.licenses.adobe.com
127.0.0.1          na1r.services.adobe.com
127.0.0.1          hlrcv.stage.adobe.com

localhost          www.exaple.com

搞定

此时我们已经完全解决了跨域问题,以及本地测试后台无法向我们本地环境设置cookie的情况了。

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

Javascript 相关文章推荐
利用JS实现浏览器的title闪烁
Jul 08 Javascript
JavaScript中的单引号和双引号报错的解决方法
Sep 01 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
Sep 06 Javascript
使用Web Uploader实现多文件上传
Jun 08 Javascript
把普通对象转换成json格式的对象的简单实例
Jul 04 Javascript
js时间比较 js计算时间差的简单实现方法
Aug 26 Javascript
深入理解requestAnimationFrame的动画循环
Sep 20 Javascript
JavaScript实现弹窗效果代码分析
Mar 09 Javascript
JavaScript切换搜索引擎的导航网页搜索框实例代码
Jun 11 Javascript
Js利用prototype自定义数组方法示例
Oct 20 Javascript
详解如何在微信小程序中愉快地使用sass
Jul 30 Javascript
JavaScript中遍历的十种方法总结
Dec 15 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
Sep 05 #Javascript
浅谈Vue.js中的v-on(事件处理)
Sep 05 #Javascript
Angular实现下载安装包的功能代码分享
Sep 05 #Javascript
简单谈谈关于Angular Cli打包的事
Sep 05 #Javascript
Vue学习笔记之表单输入控件绑定
Sep 05 #Javascript
zTree异步加载展开第一级节点的实现方法
Sep 05 #Javascript
纯js实现画一棵树的示例
Sep 05 #Javascript
You might like
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
javascript编程起步(第五课)
2007/02/27 Javascript
jQuery学习5 jQuery事件模型
2010/02/07 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
JavaScript解八皇后问题的方法总结
2016/06/12 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
JS去除重复并统计数量的实现方法
2016/12/15 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
[35:26]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第三局
2016/02/26 DOTA
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
Python中扩展包的安装方法详解
2017/06/14 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
上海方立数码笔试题
2013/10/18 面试题
JAVA中运算符的分类及举例
2015/09/12 面试题
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
夜班门卫岗位职责
2013/12/09 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
python 多态 协议 鸭子类型详解
2021/11/27 Python
Java设计模式中的命令模式
2022/04/28 Java/Android