IT俱乐部 ASP.NET asp.net core 跨域配置不起作用的原因分析及解决方案

asp.net core 跨域配置不起作用的原因分析及解决方案

1、中间件配置跨域的顺序不对

中间件顺序配置对了基本上就能解决大部分问题中间件顺序配置对了基本上就能解决大部分问题

附上官网简单的启用跨域的代码

var  MyAllowSpecificOrigins = "_myAllowSpecificOrigins";
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddCors(options =>
{
    options.AddPolicy(name: MyAllowSpecificOrigins,
                      policy  =>
                      {
                          policy.WithOrigins("http://example.com",
                                              "http://www.contoso.com");
                      });
});
// services.AddResponseCaching();
builder.Services.AddControllers();
var app = builder.Build();
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseCors(MyAllowSpecificOrigins);
app.UseAuthorization();
app.MapControllers();
app.Run();
 

2、中间件启用的跨域同时又用了属性启用跨域

自己碰到的问题,复制官网的demo测试很多遍还是不能跨域,最后发现问题出在基类控制器启用了跨域,但是策略名和中间件启用跨域的策略名的不一致,导致跨域没用……

[EnableCors("any")] //删除这行即可或者策略名改成和中间件一样 _myAllowSpecificOrigins
[Route("api/[controller]/[action]")]
[Authorize]
[ApiController]
public class BaseApiController : ControllerBase
{
}

到此这篇关于asp.net core 跨域配置不起作用的原因的文章就介绍到这了,更多相关asp.net core 跨域配置内容请搜索IT俱乐部以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT俱乐部!

本文收集自网络,不代表IT俱乐部立场,转载请注明出处。https://www.2it.club/code/asp-net/13960.html
上一篇
下一篇
联系我们

联系我们

在线咨询: QQ交谈

邮箱: 1120393934@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部