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.ui.dialog 增加“在当前鼠标位置打开”的功能
Nov 24 Javascript
基于javascript实现右下角浮动广告效果
Jan 08 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
Mar 08 Javascript
手动初始化Angular的模块与控制器
Dec 26 Javascript
JavaScript日期选择功能示例
Jan 16 Javascript
基于JavaScript实现百度搜索框效果
Jun 28 Javascript
深入理解vue.js中$watch的oldvalue与newValue
Aug 07 Javascript
Three.js基础学习教程
Nov 16 Javascript
React如何解决fetch跨域请求时session失效问题
Nov 02 Javascript
JavaScript数值类型知识汇总
Nov 17 Javascript
Vue的props父传子的示例代码
May 20 Javascript
Vue结合路由配置递归实现菜单栏功能
Jun 16 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伪静态写法附代码
2008/06/20 PHP
php实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
使用NetBeans + Xdebug调试PHP程序的方法
2011/04/12 PHP
php中执行系统命令的方法
2015/03/21 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
基于jquery的无刷新分页技术
2011/06/11 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
js分页代码分享
2014/04/28 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
require.js中的define函数详解
2017/07/10 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
Angular2之二级路由详解
2018/08/31 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
JS校验与最终登陆界面功能完整示例
2020/01/13 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
解读Python编程中的命名空间与作用域
2015/10/16 Python
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
Python实现感知机(PLA)算法
2017/12/20 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
Django web框架使用url path name详解
2019/04/29 Python
tensorflow实现将ckpt转pb文件的方法
2020/04/22 Python
用 Django 开发一个 Python Web API的方法步骤
2020/12/03 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
儿子婚宴答谢词
2014/01/09 职场文书
单位接收函格式
2015/01/30 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
一文了解MySQL二级索引的查询过程
2022/02/24 MySQL