dotnet core 之 CORS使用示例
这里列举几个经过验证的可用的CORS使用示例,
方便在需要的时候可以直接使用
示例1
#region snippet2
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy(MyAllowSpecificOrigins,
builder =>
{
//1.可用
//builder.WithOrigins("http://example.com",
// "http://www.contoso.com",
// "http://localhost:65317"); builder.AllowAnyOrigin(); //2.可用 });
}); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
#endregion #region snippet3
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
} app.UseCors(MyAllowSpecificOrigins); app.UseHttpsRedirection();
app.UseMvc();
}
#endregion
这种比较常见,即在ConfigureServices中添加中间件及定义其策略;而在Configure中把中间件设置到管道中
示例2
public void ConfigureServices(IServiceCollection services)
{
//services.AddCors(); //经试验,此句加或者不加,都是可以的 services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
} #region snippet2
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
} // Shows UseCors with CorsPolicyBuilder.
app.UseCors(builder =>
{
builder.WithOrigins("http://example.com",
"http://www.contoso.com",
"https://localhost:44375",
"http://localhost:65317");
}); app.UseHttpsRedirection();
app.UseMvc();
}
#endregion
注意,这个示例中,直接在Configure中的app.UseCors中设置的跨域的一些要求,这种写法经试验也是可以的
示例3
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddDefaultPolicy(
builder =>
{ builder.WithOrigins("http://example.com",
"http://www.contoso.com", "http://localhost:65317");
}); options.AddPolicy("AnotherPolicy",
builder =>
{
builder.WithOrigins("http://www.contoso.com", "http://localhost:65317")
.AllowAnyHeader()
.AllowAnyMethod();
}); }); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
} public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
} app.UseHttpsRedirection();
app.UseMvc();
}
经试验发现,像这种没有在Configure中使用app.UseCors的,应该都属于局部设置跨域的,需要在相应的Controller或者Action方法上,使用注解:
//[EnableCors("AnotherPolicy")] //这种事有名称的策略的注解添加
[EnableCors()] //这种是模式策略的注解添加
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
注意,即使是默认的策略也是需要使用注解进行声明的,否则会跨域错误。默认的策略只是说不用在注解中声明策略名而已
dotnet core 之 CORS使用示例的更多相关文章
- 在dotnet core web api中支持CORS(跨域访问)
最近在写的Office add-in开发系列中,其中有一个比较共性的问题就是在add-in的客户端脚本中访问远程服务时,要特别注意跨域访问的问题. 关于CORS的一些基本知识,请参考维基百科的说明:h ...
- dotnet core多平台开发体验
前言 随着net core rc2的发布,园子里面关于net core的入门文章也也多了起来,但是大多数都是在一个平台上面来写几个简单的例子,或者是在解释代码本身,并没有体现说在一个平台上面创建一个项 ...
- 基于DotNet Core的RPC框架(一) DotBPE.RPC快速开始
0x00 简介 DotBPE.RPC是一款基于dotnet core编写的RPC框架,而它的爸爸DotBPE,目标是实现一个开箱即用的微服务框架,但是它还差点意思,还仅仅在构思和尝试的阶段.但不管怎么 ...
- 将app接口服务器改为dotnet core承载
昨天我的一个 app 的接口服务器挂掉了,国外的小鸡意外的翻车,连同程序和数据一起,猝不及防.我的服务端程序是 asp.net mvc ,小鸡是 256 M 的内存跑不了 windows 系统,装的 ...
- centos 7 && dotnet core 2.0 && nginx && supervisor
前提 系统:centos 7 目录:/home/wwwroot/www.wuball.com dotnet core 2.0 官方指引 sudo rpm --import https://packag ...
- 手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)
背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...
- spring cloud+dotnet core搭建微服务架构:服务发现(二)
前言 上篇文章实际上只讲了服务治理中的服务注册,服务与服务之间如何调用呢?传统的方式,服务A调用服务B,那么服务A访问的是服务B的负载均衡地址,通过负载均衡来指向到服务B的真实地址,上篇文章已经说了这 ...
- spring cloud+dotnet core搭建微服务架构:Api网关(三)
前言 国庆假期,一直没有时间更新. 根据群里面的同学的提问,强烈推荐大家先熟悉下spring cloud.文章下面有纯洁大神的spring cloud系列. 上一章最后说了,因为服务是不对外暴露的,所 ...
- spring cloud+dotnet core搭建微服务架构:配置中心(四)
前言 我们项目中有很多需要配置的地方,最常见的就是各种服务URL地址,这些地址针对不同的运行环境还不一样,不管和打包还是部署都麻烦,需要非常的小心.一般配置都是存储到配置文件里面,不管多小的配置变动, ...
随机推荐
- JMETER 使用JDBC查找数据作为参数
有些情况下我们需要读取平台中的用户作为参数,比如用户ID作为参数进行压力测试,我们可以使用CSV文件,如果这样做,需要每一次 都构造文件,比较麻烦.如果可以查询数据库,将查出的数据作为参数循环传入的话 ...
- 数据结构篇——字典树(trie树)
引入 现在有这样一个问题, 给出\(n\)个单词和\(m\)个询问,每次询问一个单词,回答这个单词是否在单词表中出现过. 好像还行,用 map<string,bool> ,几行就完事了. ...
- Magic Master(2019年南昌网络赛E题+约瑟夫环)
目录 题目链接 题意 思路 代码 题目链接 传送门 题意 初始时你有\(n\)张牌(按顺序摆放),每一次操作你将顶端的牌拿出,然后按顺序将上面的\(m\)张牌放到底部. 思路 首先我们发下拿走\(1\ ...
- python字符串使用方法归纳
字符串的意思就是“一串字符”,比如“Hello,Charlie”是一个字符串,“How are you?”也是一个字符串. Python 要求字符串必须使用引号括起来,使用单引号也行,使用双引号也行, ...
- postgres9.5.3升级postgres11.6
附上postgres下载地址: https://yum.postgresql.org/11/redhat/rhel-7-x86_64/repoview/postgresqldbserver11.gro ...
- 网站调试时记得关闭火狐adblock插件
由于特殊需要,xmyanke需要在网站右侧添加一个弹窗,第一个网站加上代码后可以正常显示,第二个网站却怎么也看不到图片,同样的安装方法为什么差别那么大呢?重新复制代码还是不行,再试一遍,依然如此,wi ...
- CentOS7 只下载安装包不安装
参考文档 yum安装本地rpm软件方案详解 https://www.jb51.net/article/132305.htm createrepo CentOS-Media.repo 本地软件源 --d ...
- TensorFlow Lite for Android示例
一.TensorFlow Lite TensorFlow Lite 是用于移动设备和嵌入式设备的轻量级解决方案.TensorFlow Lite 支持 Android.iOS 甚至树莓派等多种平台. ...
- 2.1 自动内存管理机制--Java内存区域与内存溢出异常
自动内存管理机制 第二章.Java内存区域与内存溢出异常 [虚拟机中内存如何划分,以及哪部分区域.什么样代码和操作会导致内存溢出.各区域内存溢出的原因] 一.运行时数据区域 Java虚拟机所管理的内存 ...
- Kinect一代学习(一):开发环境搭建
https://blog.csdn.net/hongbin_xu/article/details/80722749 我用的是kinect一代(Xbox 360)的所以选择了v1.x的SDK,如果是ki ...