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图片预加载 等比缩放实现代码
Oct 04 Javascript
使用js如何实现全选与全不选
Dec 30 Javascript
不使用ajax实现无刷新提交表单
Dec 21 Javascript
漂亮! js实现颜色渐变效果
Aug 12 Javascript
Vue.js使用v-show和v-if的注意事项
Dec 13 Javascript
Bootstrap栅格系统的使用详解
Oct 30 Javascript
详解vue-cli中模拟数据的两种方法
Jul 03 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
Jul 12 Javascript
JavaScript中的ES6 Proxy的具体使用
Jun 16 Javascript
Vue实现手机扫描二维码预览页面效果
May 28 Javascript
Vue左滑组件slider使用详解
Aug 21 Javascript
原生js实现俄罗斯方块
Oct 20 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学习笔记之 函数声明
2011/06/09 PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
2011/07/18 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
JavaScript的parseInt 取整使用
2011/05/09 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
JS实现OCX控件的事件响应示例
2014/09/17 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
2016/10/27 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
实例讲解JS中pop使用方法
2019/01/27 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
[01:44]Ti10举办地公布
2019/08/25 DOTA
Python实现翻转数组功能示例
2018/01/12 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
python 模拟登陆github的示例
2020/12/04 Python
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
大学生实习期自我评价范文
2013/10/03 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
党支部培养考察意见
2015/06/02 职场文书
会计专业自荐信范文
2019/05/22 职场文书