vue几个常用跨域处理方式介绍


Posted in Javascript onFebruary 07, 2018

设置express代理请求

在基于vue-cli的项目中,在开发环境配置(config/dev.env.js)中设置代理,能够将所有/apidomain开头的请求都通过npm run dev启动的express服务器重定向到目标接口

官方文档:https://vuejs-templates.github.io/webpack/proxy.html

proxyTable: {
  '/apidomain':{
  target:'http://localhost:prot',//或ip或域名。
  changeOrigin:true,
  pathRewrite: {
   '^/apidomain': ''
  }
  }
 },

若要通过IP在局域网访问h5,启动开发服务器的时候添加host参数即可

即package.json的dev命令配置如下

"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 0.0.0.0",

关闭chrome安全策略实现跨域

windows中新建一个bat文件粘贴下面的命令即可以此模式打开

cd "C:\Program Files (x86)\Google\Chrome\Application" 
chrome.exe --disable-web-security --user-data-dir=c:/CorsUserData

asp.net core 服务端的CORS跨域设置

官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/security/cors

在实际设置中,因为在h5端添加header参数产生了预检(OPTIONS)请求,看了上述文章后将通用参数修改到了query参数中

1. 添加cors服务

public void ConfigureServices(IServiceCollection services)
{
 //若只有部分接口则定义一个或多个命名的 CORS 策略,并在运行时按名称然后选择的策略,通过特性标记去设置跨域 详情见文档
 services.AddCors();
}

2. 启用中间件

//读取配置文件中设置的允许跨域的域名 CorsOrigins为一个数组 设置["*"]则会允许所有
var origins = Configuration.GetSection("CorsOrigins").GetChildren().Select(s => s.Value).ToArray();
app.UseCors(e =>
{
 e.WithOrigins(origins).AllowAnyHeader().AllowAnyMethod().AllowCredentials();
});
//Startup文件中Configuration对象的获取
public IConfiguration Configuration { get; }
public Startup()
{
 var builder = new ConfigurationBuilder()//...AddJsonFile($"appsettings.json");
 Configuration = builder.Build();
}

JSONP

JSONP只支持GET请求,CORS支持所有类型的HTTP请求。JSONP的优势在于支持老式浏览器,以及可以向不支持CORS的网站请求数据。

Javascript 相关文章推荐
仿淘宝TAB切换搜索框搜索切换的相关内容
Sep 21 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
Dec 04 Javascript
jquery特效 点击展示与隐藏全文
Dec 09 Javascript
实例讲解避免javascript冲突的方法
Jan 03 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
Apr 01 Javascript
ArtEditor富文本编辑器增加表单提交功能
Apr 18 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
Dec 14 Javascript
EasyUI学习之DataGird分页显示数据
Dec 29 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
Aug 29 Javascript
详解Vue单元测试Karma+Mocha学习笔记
Jan 31 Javascript
在微信小程序中渲染HTML内容的方法示例
Sep 28 Javascript
读懂CommonJS的模块加载
Apr 19 Javascript
vue项目中axios使用详解
Feb 07 #Javascript
vue-cli webpack2项目打包优化分享
Feb 07 #Javascript
浅谈es6中export和export default的作用及区别
Feb 07 #Javascript
Vue封装Swiper实现图片轮播效果
Feb 06 #Javascript
vue中如何使用ztree
Feb 06 #Javascript
javascript回调函数详解
Feb 06 #Javascript
原生JS实现瀑布流插件
Feb 06 #Javascript
You might like
thinkPHP删除前弹出确认框的简单实现方法
2016/05/16 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
jQuery-ui中自动完成实现方法
2010/06/10 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
详解Angular 自定义结构指令
2017/06/21 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
vue结合Echarts实现点击高亮效果的示例
2018/03/17 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
微信小程序在text文本实现多种字体样式
2019/11/08 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
js实现拖拽与碰撞检测
2020/09/18 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
Python协程的用法和例子详解
2017/09/09 Python
Python设计模式之装饰模式实例详解
2019/01/21 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
娱乐地球:Entertainment Earth
2020/01/08 全球购物
关于教师节的广播稿
2014/09/10 职场文书
车辆委托书范本
2014/10/05 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书