webpack+vue-cil中proxyTable处理跨域的方法


Posted in Javascript onJuly 20, 2018

跨域

了解同源政策:所谓"同源"指的是"三个相同"。

  • 协议相同
  • 域名相同
  • 端口相同

解决跨域

1.jsonp 缺点:只能get请求 ,需要修改B网站的代码
2.cors 这个方案缺点 是 ie6 7 兼容不好(倒是不见得要兼容)。需要B网站在响应中加头
3.postMessage 缺点也是 ie6 7 兼容不好(倒是不见得要兼容)。需要修改B网站的代码
4.iframe window.name 传值得方式很巧妙,兼容性也很好。但是也是需要你能修改B网站代码
5.服务端主动请求B网站,兼容性好而且你客户端的代码还是原来的ajax,缺点是感觉不好。(服务器端是不存在跨域安全限制的)
6.类似5 用nginx把B网站的数据url反向代理。

node, express 解决跨域

加上请求头:

app.all('*', (req, res, next)=>{
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
  res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
  res.header("X-Powered-By",' 3.2.1')

  if(req.method=="OPTIONS") res.send(200);/*让options请求快速返回*/
  else next();
});

重点说一下vue-cli处理跨域

  • 前后端分离的项目,常常开发的时候,请求的接口地址存在跨域问题
  • webpack 前后端分离开发接口调试解决方案,proxyTable解决方案
  • 首先要在项目目录中找到根目录下config文件夹下的index.js文件。由于我们是在开发环境下使用,自然而然是要配置在dev里面:
port: 8080,
proxyTable: {
 '/api': {
  target: 'http://www.ainyi.com', // 目标接口域名
  changeOrigin: true, // 是否跨域
  // secure: false, // 如果是https接口,需要配置这个参数
  pathRewrite: {
   '^/api': ''  // 重写接口,一般不更改
  }
 },
},

'/api' 为匹配项,target 为被请求的地址

以上代码表示:只要是http://www.ainyi.com/api的接口,都将被本地8080端口的请求代理:

http://localhost:8080/api ===> http://www.ainyi.com/api

也就是说,想请求接口http://www.ainyi.com/api,就是通过http://localhost:8080/api代理访问,就不会产生跨域。

这样就不需要在axios配置axios.defaults.baseURL,所有接口都由本地代理了

GitHub:https://github.com/Krryxa

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
DOMAssitant最新版 DOMAssistant 2.5发布
Dec 25 Javascript
JavaScript Cookie显示用户上次访问的时间和次数
Dec 08 Javascript
jquery中的过滤操作详细解析
Dec 02 Javascript
输入框过滤非数字的js代码
Sep 18 Javascript
jQuery实现单击和鼠标感应事件
Feb 01 Javascript
javascript自动生成包含数字与字符的随机字符串
Feb 09 Javascript
JS实现的驼峰式和连字符式转换功能分析
Dec 21 Javascript
JavaScript实现前端实时搜索功能
Mar 26 Javascript
微信小程序wx.request拦截器使用详解
Jul 09 Javascript
Js和VUE实现跑马灯效果
May 25 Javascript
vue实现评价星星功能
Jun 30 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
Dec 16 Javascript
详解vue-cli官方脚手架配置
Jul 20 #Javascript
Vue中的异步组件函数实现代码
Jul 20 #Javascript
vue 中的keep-alive实例代码
Jul 20 #Javascript
Angularjs实现页面模板清除的方法
Jul 20 #Javascript
搭建vue开发环境
Jul 19 #Javascript
jQuery实现表单动态添加数据并提交的方法
Jul 19 #jQuery
微信小程序项目实践之九宫格实现及item跳转功能
Jul 19 #Javascript
You might like
咖啡常见的种类
2021/03/03 新手入门
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
php数据库备份还原类分享
2014/03/20 PHP
PHP Curl出现403错误的解决办法
2014/05/29 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
javaScript Array(数组)相关方法简述
2009/07/25 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
axios post提交formdata的实例
2018/03/16 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
基于jQuery拖拽事件的封装
2020/11/29 jQuery
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
深入理解 Python 中的多线程 新手必看
2016/11/20 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
Python中函数参数调用方式分析
2018/08/09 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
Python字符串三种格式化输出
2020/09/17 Python
HTML5仿手机微信聊天界面
2016/03/18 HTML / CSS
2014政府领导班子对照检查材料思想汇报(3篇)
2014/09/26 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL
MySQL图形化管理工具Navicat安装步骤
2021/12/04 MySQL
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android