详解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 相关文章推荐
JavaScript中的面向对象介绍
Jun 30 Javascript
JS版元素周期表实现方法
Aug 05 Javascript
js+css实现回到顶部按钮(back to top)
Mar 02 Javascript
JS中setTimeout和setInterval的最大延时值详解
Feb 13 Javascript
socket.io实现在线群聊功能
Apr 07 Javascript
bootstrap switch开关组件使用方法详解
Aug 22 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
Oct 18 Javascript
把vue-router和express项目部署到服务器的方法
Feb 21 Javascript
详解如何快速配置webpack多入口脚手架
Dec 28 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
Apr 18 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
Sep 10 jQuery
JavaScript中展开运算符及应用的实例代码
Jan 14 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
ezSQL PHP数据库操作类库
2010/05/16 PHP
php批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
Session保存到数据库的php类分享
2011/10/24 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
php文件夹与文件目录操作函数介绍
2013/09/09 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
用Javascript实现锚点(Anchor)间平滑跳转
2009/09/08 Javascript
JQuery解析HTML、JSON和XML实例详解
2014/03/29 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
Vue.js实现网格列表布局转换方法
2017/08/25 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
原生js实现日期选择插件
2020/05/21 Javascript
用Python输出一个杨辉三角的例子
2014/06/13 Python
老生常谈Python序列化和反序列化
2017/06/28 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
详细分析python3的reduce函数
2017/12/05 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
连锁经营管理专业大学生求职信
2013/10/30 职场文书
大学新生军训方案
2014/05/03 职场文书
房产分割协议书范文
2014/11/21 职场文书
师德标兵先进事迹材料
2014/12/19 职场文书
培养联系人考察意见
2015/06/01 职场文书
KVM基础命令详解
2022/04/30 Servers