详解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.boxy对话框插件代码
Oct 26 Javascript
javascript代码加载优化方法
Jan 30 Javascript
jQuery插件原来如此简单 jQuery插件的机制及实战
Feb 07 Javascript
jQuery操作input值的各种方法总结
Nov 21 Javascript
js中的eventType事件及其浏览器支持性介绍
Nov 29 Javascript
js 删除数组的几种方法小结
Feb 21 Javascript
jquery实现的鼠标拖动排序Li或Table
May 04 Javascript
js实现简单的验证码
Dec 25 Javascript
vue 挂载路由到头部导航的方法
Nov 13 Javascript
vue2.0.js的多级联动选择器实现方法
Feb 09 Javascript
JavaScript 隐性类型转换步骤浅析
Mar 15 Javascript
详解easyui基于 layui.laydate日期扩展组件
Jul 18 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
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
2014/12/17 PHP
微信企业转账之入口类分装php代码
2018/10/01 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
零基础php编程好学吗
2019/10/11 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
DOM下的节点属性和操作小结
2009/05/14 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
Node.js事件驱动
2015/06/18 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
python转换摩斯密码示例
2014/02/16 Python
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
Python基础入门之seed()方法的使用
2015/05/15 Python
python线程、进程和协程详解
2016/07/19 Python
Python中类型检查的详细介绍
2017/02/13 Python
PyQt5 QSerialPort子线程操作的实现
2018/04/21 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
详解Python字符串切片
2019/05/20 Python
python开启debug模式的方法
2019/06/27 Python
pandas的排序和排名的具体使用
2019/07/31 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
HTML5的结构和语义(5):交互
2008/10/17 HTML / CSS
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
竞争性谈判邀请书
2014/02/06 职场文书
简单且有用的Python数据分析和机器学习代码
2021/07/02 Python
修改Nginx配置返回指定content-type的方法
2022/09/23 Servers