详解vue-cli3 中跨域解决方案


Posted in Javascript onApril 10, 2019

此方案只能用于开发环境,线上最好设置同源策略(遇到个后端,装你妈批)

前后端不在同一服务器的情况下,前端要访问后端API,可通过在vue.config.js中配置代理服务器。

0:前提条件

1:安装vue-lic

2:安装axios  用于发送请求。

1:将任何未知请求转发到代理服务器

如:

前端地址:127.0.0.1

后端地址:127.0.0.2

当访问地址为 127.0.0.1/api,没有匹配到这地址,那么就会被转发到代理服务器127.0.0.2/api

module.exports={
  devServer:{
    proxy: "http://www.acfun.cn"
  }
}

2:多代理控制

更多代理服务配置项搜索http-proxy-middleware查看

module.exports = {
  devServer: {
    proxy: {
      '/search': {  // search为转发路径
        target: 'http://www.acfun.cn', // 目标地址
        ws: true, // 是否代理websockets
        changeOrigin: true  // 设置同源 默认false,是否需要改变原始主机头为目标URL,        
      }
    }
  }
};

如:

当前访问地址为  xxx.xxx.xxx/search时,就会被转发到代理服务器http://www.acfun.cn/search

xxx.xxx.xxx/search -> http://www.acfun.cn/search

 3:实例

api.js 文件(主要用于全局配置)

import Axios from "axios";

let http = Axios.create({
  timeout: 3000,  //超时配置 3秒
  responseType: 'json',  // 响应数据格式
  responseEncoding: 'utf8', // 响应数据编码
});

export default http;

入口文件  main.js

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import http from "./api";  // 引用axios全局配置

Vue.config.productionTip = false;

Vue.prototype.$http = http;  // 添加原型方法,这样创建的对象就自带该方法了。

new Vue({
  router,
  render: h => h(App)
}).$mount("#app");

vue.config.js 配置文件

更多代理服务配置项搜索http-proxy-middleware查看

module.exports = {
  devServer: {
    proxy: {
      '/search': {
        target: 'http://www.acfun.cn',
        ws: true,//是否代理websockets
        changeOrigin: true  // 设置同源 默认false,是否需要改变原始主机头为目标URL
      }
    }
  }
};

总结

以上所述是小编给大家介绍的vue-cli3 中跨域解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery 回车事件实现代码
Aug 23 Javascript
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
Aug 14 Javascript
javascript打印大全(打印页面设置/打印预览代码)
Mar 29 Javascript
JS 获取select(多选下拉)中所选值的示例代码
Aug 02 Javascript
jquery+css实现动感的图片切换效果
Nov 25 Javascript
JavaScript实现九九乘法表的简单实例
Jun 07 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
Jul 25 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
Aug 01 Javascript
Bootstrap fileinput文件上传组件使用详解
Jun 06 Javascript
详解node.js的http模块实例演示
Jul 12 Javascript
解决vue中修改export default中脚本报一大堆错的问题
Aug 27 Javascript
Vue+abp微信扫码登录的实现代码示例
Jan 06 Javascript
js中数组常用方法总结(推荐)
Apr 09 #Javascript
JS隐藏号码中间4位代码实例
Apr 09 #Javascript
vue 点击展开显示更多(点击收起部分隐藏)
Apr 09 #Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
Apr 09 #Javascript
关于vue状态过渡transition不起作用的原因解决
Apr 09 #Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
Apr 09 #Javascript
Angular脚手架开发的实现步骤
Apr 09 #Javascript
You might like
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
php上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
PHP测试框架PHPUnit组织测试操作示例
2018/05/28 PHP
php获取小程序码的实现代码(B类接口)
2020/06/13 PHP
JavaScript中“+=”的应用
2007/02/02 Javascript
ExtJS下grid的一些属性说明
2009/12/13 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
2011/01/06 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
js 上下左右键控制焦点(示例代码)
2013/12/14 Javascript
详解Javascript动态操作CSS
2014/12/08 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
Python实现的十进制小数与二进制小数相互转换功能
2017/10/12 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
python3 打印输出字典中特定的某个key的方法示例
2019/07/06 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
加利福尼亚州威尼斯的女性奢侈品设计师服装和概念店:Mona Moore
2018/09/13 全球购物
农行实习自我鉴定
2013/09/22 职场文书
党员民主评议自我评价
2014/10/20 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
Java中的随机数Random
2022/03/17 Java/Android
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers