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 相关文章推荐
Safari5中alert的无限循环BUG
Apr 07 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
May 03 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
Nov 14 Javascript
js使用函数绑定技术改变事件处理程序的作用域
Dec 26 Javascript
jquery创建表格(自动增加表格)代码分享
Dec 25 Javascript
Javascript学习笔记之 函数篇(二) : this 的工作机制
Jun 24 Javascript
javascript鼠标滑动评分控件完整实例
May 13 Javascript
JS延时提示框实现方法详解
Nov 26 Javascript
js中scrollTop()方法和scroll()方法用法示例
Oct 03 Javascript
JS+canvas绘制的动态机械表动画效果
Sep 12 Javascript
微信小程序保存图片到相册权限设置
Apr 09 Javascript
jQuery编写QQ简易聊天框
Aug 27 jQuery
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
什么是短波收听SWL
2021/03/01 无线电
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
php $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
jQuery实现可编辑的表格实例讲解(2)
2015/09/17 Javascript
Websocket协议详解及简单实例代码
2016/12/12 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
Python向日志输出中添加上下文信息
2017/05/24 Python
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
wxPython色环电阻计算器
2019/11/18 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
python re.match()用法相关示例
2021/01/27 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
HTML+CSS+JavaScript实现图片3D展览的示例代码
2020/10/12 HTML / CSS
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
上级检查欢迎词
2014/01/18 职场文书
聚美优品的广告词
2014/03/14 职场文书
小组名称和口号
2014/06/09 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
学生打架检讨书
2014/10/20 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
发展党员工作情况汇报
2014/10/28 职场文书
感谢信模板大全
2015/01/23 职场文书
大学生求职自荐信
2015/03/24 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
深入详解JS函数的柯里化
2021/06/09 Javascript
MySQL 数据类型详情
2021/11/11 MySQL
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python
TS 类型收窄教程示例详解
2022/09/23 Javascript