netcore3.0配置跨域

netcore3.0框架已集成了Microsoft.AspNetCore.Mvc.Cors包,因此不需要单独引用。

ConfigureServices中添加Cors策略服务

services.AddCors(options =>
{
    options.AddPolicy("AllowAllOrigins",
        builder => builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().AllowCredentials());
});

在Configure中添加到中间件中

  app.UseCors("AllowAllOrigins");

【注:策略名可以任意自定义,但是前后必须对应,当然可以设置多个策略;注意中间件放置的位置,在app.UseRouting()和app.UseEndPoints()之间】

》》》你以为这样就结束了吗?运行起来发现报错了:

 

原因是新版的Cors中间件已经阻止使用允许任意Origin,也就是说即使你配置了AllowAllOrigin()也不会生效。解决办法是使用WithOrigins进行设置:

【注:URL地址最后不能添加'/',如果以'/'终止,比较将返回false并且不返回任何标头】

builder.AllowAnyHeader().AllowAnyMethod().AllowCredentials().WithOrigins(new []{"http://localhost:5000"});
原文地址:https://www.cnblogs.com/az4215/p/11910346.html