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中Math对象使用说明
Jan 16 Javascript
JQuery 绑定事件时传递参数的实现方法
Oct 13 Javascript
将CKfinder整合进CKEditor3.0的新方法
Jan 10 Javascript
Javascript 面向对象 继承
May 13 Javascript
javascript与CSS复习(二)
Jun 29 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
Oct 18 Javascript
使用jquery解析XML的方法
Sep 05 Javascript
深入理解bootstrap框架之第二章整体架构
Oct 09 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
Dec 25 jQuery
JS表单传值和URL编码转换
Mar 03 Javascript
js将键值对字符串转为json字符串的方法
Mar 30 Javascript
Vue 使用beforeEach实现登录状态检查功能
Oct 31 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中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
Symfony2 session用法实例分析
2016/02/04 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
PHP图片水印类的封装
2017/07/06 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
PHP与以太坊交互详解
2018/08/24 PHP
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
javascript实现将文件保存到本地方法汇总
2015/07/26 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
提高JavaScript执行效率的23个实用技巧
2017/03/01 Javascript
基于easyui checkbox 的一些操作处理方法
2017/07/10 Javascript
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
Vue $emit $refs子父组件间方法的调用实例
2018/09/12 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
如何实现一个简易版的vuex持久化工具
2019/09/11 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
Javascript柯里化实现原理及作用解析
2020/10/22 Javascript
Python 绘图和可视化详细介绍
2017/02/11 Python
对pandas的dataframe绘图并保存的实现方法
2017/08/05 Python
python构建深度神经网络(续)
2018/03/10 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
python-numpy-指数分布实例详解
2019/12/07 Python
如何理解python对象
2020/06/21 Python
Python 存取npy格式数据实例
2020/07/01 Python
python Matplotlib数据可视化(1):简单入门
2020/09/30 Python
英国虚拟主机服务商:eUKhost
2016/08/16 全球购物
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
VICHY薇姿俄罗斯官方网上商店:法国护肤品牌,火山温泉水
2019/11/22 全球购物