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 相关文章推荐
js 调用本地exe的例子(支持IE内核的浏览器)
Dec 26 Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
Feb 01 Javascript
javascript中的绑定与解绑函数应用示例
Jun 24 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
Nov 16 Javascript
jQuery UI插件实现百度提词器效果
Nov 21 Javascript
jquery滚动条插件(可以自定义)
Dec 11 Javascript
深入理解jquery中extend的实现
Dec 22 Javascript
深入理解Angular中的依赖注入
Jun 26 Javascript
vue中页面跳转拦截器的实现方法
Aug 23 Javascript
JavaScript实现随机数生成器(去重)
Oct 13 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
Dec 20 Javascript
探秘vue-rx 2.0(推荐)
Sep 21 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
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
PHP实现HTML生成PDF文件的方法
2014/11/07 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
php解析非标准json、非规范json的方式实例
2020/12/10 PHP
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
JS字符串按逗号和回车分隔的方法
2017/04/25 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
解密Python中的描述符(descriptor)
2015/06/03 Python
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
tensorflow创建变量以及根据名称查找变量
2018/03/10 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
Django中的ajax请求
2018/10/19 Python
python实现马丁策略的实例详解
2021/01/15 Python
用CSS禁用输入法(CSS3 UI规范)实例解析
2012/12/04 HTML / CSS
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
港湾网络笔试题
2014/04/19 面试题
保安部任务及岗位职责
2014/02/25 职场文书
环保倡议书格式范文
2014/05/14 职场文书
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle