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 相关文章推荐
Jquery性能优化详解
May 15 Javascript
javascript中的throttle和debounce浅析
Jun 06 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
Nov 19 Javascript
基于jquery步骤进度条源码分享
Nov 12 Javascript
深入理解requestAnimationFrame的动画循环
Sep 20 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
Mar 07 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
May 26 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
Oct 30 Javascript
基于Vue渲染与插件的加载顺序的问题详解
Mar 05 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
Sep 30 Javascript
详解ES6系列之私有变量的实现
Nov 21 Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
Dec 09 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
ThinkPHP自动填充实现无限级分类的方法
2014/08/22 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
解决php写入数据库乱码的问题
2019/09/17 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
js 操作select与option(示例讲解)
2013/12/20 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
JQuery实现Ajax加载图片的方法
2015/12/24 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
AngularJS入门教程之AngularJS 模板
2016/08/18 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
vue小图标favicon不显示的解决方案
2017/09/19 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
python 默认参数问题的陷阱
2016/02/29 Python
python机器人行走步数问题的解决
2018/01/29 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
python 实现矩阵填充0的例子
2019/11/29 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
2020/02/14 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
通用的Django注册功能模块实现方法
2021/02/05 Python
Pytorch如何切换 cpu和gpu的使用详解
2021/03/01 Python
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
毕业生动漫设计求职信
2013/10/11 职场文书
学生自我评语大全
2014/04/18 职场文书
党员个人对照检查材料
2014/10/01 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
践行党的群众路线心得体会
2014/11/05 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
2019教师的学习计划
2019/06/25 职场文书
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫
VUE递归树形实现多级列表
2022/07/15 Vue.js