详解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 相关文章推荐
jQuery.extend()的实现方式详解及实例
Jun 29 Javascript
jQuery设置Cookie及删除Cookie实例分析
Apr 15 Javascript
JavaScript的Backbone.js框架入门学习指引
May 07 Javascript
js手动播放图片实现图片轮播效果
Sep 17 Javascript
几句话带你理解JS中的this、闭包、原型链
Sep 26 Javascript
js canvas实现QQ拨打电话特效
May 10 Javascript
vue router demo详解
Oct 13 Javascript
JavaScript执行环境及作用域链实例分析
Aug 01 Javascript
vue如何限制只能输入正负数及小数
Jul 04 Javascript
微信小程序开发(二):页面跳转并传参操作示例
Jun 01 Javascript
vue v-model的用法解析
Oct 19 Javascript
react使用antd表单赋值,用于修改弹框的操作
Oct 29 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
php中CI操作多个数据库的代码
2012/07/05 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
php实现对两个数组进行减法操作的方法
2015/04/17 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
js防止表单重复提交的两种方法
2013/09/30 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
webpack打包js的方法
2018/03/12 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
微信小程序文章列表功能完整实例
2020/06/03 Javascript
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
Python实现命令行通讯录实例教程
2016/08/18 Python
Python使用cx_Oracle调用Oracle存储过程的方法示例
2017/10/07 Python
python写程序统计词频的方法
2019/07/29 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
2019/09/16 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
详解python itertools功能
2020/02/07 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
读书心得体会
2013/12/28 职场文书
《雨霖铃》教学反思
2014/02/22 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
工会工作个人总结
2015/03/03 职场文书
老兵退伍感言
2015/08/03 职场文书
职业规划从高考志愿专业选择开始
2019/08/08 职场文书
Python使用scapy模块发包收包
2021/05/07 Python