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实现的listview效果
Apr 28 Javascript
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
Mar 21 Javascript
基于JQuery的抓取博客园首页RSS的代码
Dec 01 Javascript
一个JavaScript变量声明的知识点
Oct 28 Javascript
图片上传插件jquery.uploadify详解
Nov 15 Javascript
jQuery中delegate与on的用法与区别示例介绍
Dec 20 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
Jan 19 Javascript
jQuery制作图片旋转效果
Feb 02 Javascript
详解微信小程序-canvas绘制文字实现自动换行
Apr 26 Javascript
详解VUE项目中安装和使用vant组件
Apr 28 Javascript
通过实例解析javascript Date对象属性及方法
Nov 04 Javascript
JavaScript 数组去重详解
Sep 15 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 文件编程综合案例-文件上传的实现
2013/07/03 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
JavaScript继承方式实例
2010/10/29 Javascript
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
Jquery ajax传递复杂参数给WebService的实现代码
2011/08/08 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
js实现数组转换成json
2015/06/26 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
解决vue 引入子组件报错的问题
2018/09/06 Javascript
javascript sort()对数组中的元素进行排序详解
2019/10/13 Javascript
通过Python模块filecmp 对文件比较的实现方法
2018/06/29 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
SOA的常见陷阱或者误解是什么
2014/10/05 面试题
大学生职业生涯规划范文
2013/12/31 职场文书
校园报刊亭的创业计划书
2014/01/02 职场文书
教师开学感言
2014/02/14 职场文书
项目合作协议书
2014/04/16 职场文书
学习礼仪心得体会
2014/09/01 职场文书
法人代表证明书格式
2014/10/01 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
考生诚信考试承诺书(2016版)
2016/03/25 职场文书