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 相关文章推荐
JavaScript 5 新增 Array 方法实现介绍
Feb 06 Javascript
JQuery实现倒计时按钮具体方法
Nov 14 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
Apr 25 Javascript
js实现背景图片感应鼠标变化的方法
Feb 28 Javascript
jQuery对象与DOM对象之间的相互转换
Mar 03 Javascript
JavaScript中setFullYear()方法的使用详解
Jun 11 Javascript
jquery实现用户信息修改验证输入方法汇总
Jul 18 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
Jun 23 Javascript
Node.js学习入门
Jan 03 Javascript
ionic2自定义cordova插件开发以及使用(Android)
Jun 19 Javascript
解析vue中的$mount
Dec 21 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
Sep 24 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
php设计模式 Strategy(策略模式)
2011/06/26 PHP
php中{}大括号是什么意思
2013/12/01 PHP
PHP生成图片验证码功能示例
2017/01/12 PHP
php生成word并下载代码实例
2019/03/15 PHP
基础的prototype.js常用函数及其用法
2007/03/10 Javascript
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
jQuery validate插件submitHandler提交导致死循环解决方法
2016/01/21 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
javascript实现文字无缝滚动效果
2017/08/26 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
vue.js购物车添加商品组件的方法
2019/09/17 Javascript
JS实现简单tab选项卡切换
2019/10/25 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
Python XML RPC服务器端和客户端实例
2014/11/22 Python
Python实现股市信息下载的方法
2015/06/15 Python
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
Python程序退出方式小结
2017/12/09 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
python对文件的操作方法汇总
2020/02/28 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
捷克厨房用品购物网站:Tescoma
2018/07/13 全球购物
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
专业毕业生个性的自我评价
2013/10/03 职场文书
刚毕业大学生自荐信范文
2014/02/20 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
成龙洗发水广告词
2014/03/14 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang