详解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实现轮显新闻标题链接
Aug 13 Javascript
javascript 写类方式之八
Jul 05 Javascript
比较搞笑的js陷阱题
Feb 07 Javascript
jQuery 对Select的操作备忘记录
Jul 04 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
Sep 29 Javascript
js 求时间差的实现代码
Apr 26 Javascript
微信小程序 支付功能开发错误总结
Feb 21 Javascript
webpack多页面开发实践
Dec 18 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
Feb 10 Javascript
使用vuex解决刷新页面state数据消失的问题记录
May 08 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
Dec 02 Javascript
jQuery实现增删改查
Dec 22 jQuery
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
PHP实现简单ajax Loading加载功能示例
2016/12/28 PHP
js自带函数备忘 数组
2006/12/29 Javascript
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
JS计算网页停留时间代码
2014/04/28 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
JavaScript队列、优先队列与循环队列
2016/11/14 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
js实现图片360度旋转
2017/01/22 Javascript
Move.js入门
2017/02/08 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
小程序实现多选框功能
2018/10/30 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
2020/04/22 Javascript
详解vue 组件
2020/06/11 Javascript
Python模拟脉冲星伪信号频率实例代码
2018/01/03 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
Python面向对象程序设计类的多态用法详解
2019/04/12 Python
在pycharm中显示python画的图方法
2019/08/31 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
2020/01/03 Python
python中sympy库求常微分方程的用法
2020/04/28 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
工厂保洁员岗位职责
2013/12/04 职场文书
全国道德模范事迹
2014/02/01 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
发展党员工作情况汇报
2014/10/28 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
编写python程序的90条建议
2021/04/14 Python
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL