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 相关文章推荐
修改发贴的编辑功能
Mar 07 Javascript
js 编程笔记 无名函数
Jun 28 Javascript
通过url查找a元素应用案例
Apr 29 Javascript
JavaScript和CSS交互的方法汇总
Dec 02 Javascript
javascript 判断两个日期之差的示例代码
Sep 05 Javascript
ES6中的箭头函数实例详解
Apr 06 Javascript
javascript 中null和undefined区分和比较
Apr 19 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
Sep 26 Javascript
JavaScript代码执行的先后顺序问题
Oct 29 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
Dec 04 Javascript
Vue利用canvas实现移动端手写板的方法
May 03 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
Oct 23 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
zf框架的校验器InArray使用示例
2014/03/13 PHP
php实现发送微信模板消息的方法
2015/03/07 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
javascript Select标记中options操作方法集合
2008/10/22 Javascript
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
[50:17]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
对python的输出和输出格式详解
2018/12/08 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
python Jupyter运行时间实例过程解析
2019/12/13 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
在python3.9下如何安装scrapy的方法
2021/02/03 Python
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
UNIONBAY官网:美国青少年服装品牌
2019/03/26 全球购物
党员年终民主评议的自我评价
2013/11/05 职场文书
体育教育专业自荐信范文
2013/12/20 职场文书
国企干部对照检查材料
2014/08/22 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
暑期社会实践新闻稿
2015/07/17 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
教师师德工作总结2015
2015/07/22 职场文书
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
MongoDB支持的数据类型
2022/04/11 MongoDB