这里列举几个经过验证的可用的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

注意,即使是默认的策略也是需要使用注解进行声明的,否则会跨域错误。默认的策略只是说不用在注解中声明策略名而已

最新文章

  1. Microsoft Build 2016 Day 1 记录
  2. Ubuntu 16 安装JDK1.8
  3. Serial Port Programming on Linux(转载)
  4. thinkphp发邮件失败原因
  5. R语言向量
  6. C#微信公众号开发系列教程四(接收普通消息)
  7. ThinkPHP讲解(十)——第三方类的引入:以分页为主
  8. QT添加程序图标及窗口图标
  9. js中encode、decode的应用说明
  10. c++ 函数返回指针 及用法
  11. java学习笔记-继承中super关键字
  12. 深入浅出Windows BATCH
  13. Tomcat中Context的配置
  14. [HMLY]14.对iOS开发中使用MVVM的理解和使用(初级)
  15. Jarvis OJ- [XMAN]level2/3_x64-Writeup——64位简单栈溢出
  16. 【转】Linux上vi(vim)编辑器使用教程
  17. Javascript高级编程学习笔记(25)—— 函数表达式(3)模仿块级作用域
  18. 006.Ceph对象存储基础使用
  19. 纯css3无缝滚动
  20. 【Oracle】Oracle的内外连接

热门文章

  1. Django框架(三)-- orm增删改查、Django生命周期
  2. Pods应用NFS存储
  3. SQL注入总结
  4. js处理滚动条操作
  5. CEF3相关知识汇总(不断更新)
  6. unity客户端自动断开连接
  7. AcWing 38. 二叉树的镜像
  8. js日志组件封装
  9. java注释代码规范
  10. 关于微信订阅号里自动回复里的a链接的问题