asp.net core 跨域配置不起作用的原因

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

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

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

csharp 复制代码
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测试很多遍还是不能跨域,最后发现问题出在基类控制器启用了跨域,但是策略名和中间件启用跨域的策略名的不一致,导致跨域没用...

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

}
相关推荐
腾讯云云开发4 小时前
【你可能不知道的开发技巧】一行代码完成小程序的CloudBase鉴权登录
前端·后端·微信小程序
申阳4 小时前
Day 21:03. 基于 SpringBoot4 开发后台管理系统-整合 SpringSecurity 完成登录功能
前端·后端·程序员
捧 花4 小时前
Go Web 开发流程
开发语言·后端·golang·restful·web·分层设计
南猿北者4 小时前
go语言基础语法
开发语言·后端·golang
镜花水月linyi4 小时前
1.5w字ReentrantLock 深度解析
java·后端·程序员
bot5556664 小时前
企业微信iPad协议:从接口设计到灰度验证的极简实践
后端
程序员西西4 小时前
Spring Boot3 分页操作全解析:从基础到实战
java·后端·程序员
用户68545375977694 小时前
为什么Python大神都在用with?看完我悟了
后端
mudtools4 小时前
一分钟实现.NET与飞书长连接的WebSocket架构
后端·c#·.net
Mcband4 小时前
【Spring Boot】Interceptor的原理、配置、顺序控制及与Filter的关键区别
java·spring boot·后端