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 相关文章推荐
jquery动态增加text元素以及删除文本内容实例代码
Jul 01 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
Dec 24 Javascript
JavaScript中的DSL元编程介绍
Mar 15 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
May 25 Javascript
drag-and-drop实现图片浏览器预览
Aug 06 Javascript
js实现全国省份城市级联下拉菜单效果代码
Sep 07 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
Sep 17 Javascript
Google 地图API资料整理及详细介绍
Aug 06 Javascript
Vue.Draggable实现拖拽效果
Jul 29 Javascript
JS获取一个表单字段中多条数据并转化为json格式
Oct 17 Javascript
JS实现去除数组中重复json的方法示例
Dec 21 Javascript
JAVA面试题 static关键字详解
Jul 16 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
第十三节 对象串行化 [13]
2006/10/09 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
使用dynatrace-ajax跟踪JavaScript的性能
2010/04/12 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
2011/05/25 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
2013/08/26 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
关于JavaScript 原型链的一点个人理解
2016/07/31 Javascript
JavaScript与java语言有什么不同
2016/09/22 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
2018/08/09 jQuery
Koa日志中间件封装开发详解
2019/03/09 Javascript
微信小程序HTTP接口请求封装代码实例
2019/09/05 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
python中的多线程实例教程
2014/08/27 Python
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
Python requests设置代理的方法步骤
2020/02/23 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
python 装饰器的使用示例
2020/10/10 Python
CSS3实现swap交换动画
2016/01/19 HTML / CSS
你的自行车健身专家:FaFit24
2016/11/16 全球购物
学生的自我鉴定范文
2013/10/24 职场文书
大学军训感言1000字
2014/02/25 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
2014年小学数学教师工作总结
2014/12/03 职场文书
python 下载文件的几种方式分享
2021/04/07 Python
python munch库的使用解析
2021/05/25 Python
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技
CSS控制继承中的height能变为可继承吗
2022/06/10 HTML / CSS