You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8中CORS预检请求返回405问题求助

解决ASP.NET Core 6迁移至.NET 8后CORS预检405错误的方案

1. 检查CORS中间件顺序

.NET 8对中间件执行顺序的校验更严格,必须确保UseCors在路由和授权中间件之前执行,否则预检请求会被提前拦截。调整Configure方法中的顺序:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // 优先配置异常处理等基础中间件
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    // CORS必须在UseRouting和UseAuthorization之前
    app.UseCors("YourCorsPolicy"); 

    app.UseRouting();
    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

2. 确保CORS策略包含OPTIONS方法

预检请求使用OPTIONS方法,需要在CORS策略中明确允许该方法(或直接允许所有方法):

services.AddCors(options =>
{
    options.AddPolicy("YourCorsPolicy", policy =>
    {
        policy.WithOrigins("https://your-angular-domain.com") // 替换为你的Angular域名
              .AllowAnyHeader()
              .AllowAnyMethod() // 包含OPTIONS在内的所有方法
              .AllowCredentials(); // 若需携带Cookie/认证信息则开启
    });
});

3. 排查AKS与Azure Traffic Manager的配置

3.1 Ingress控制器配置

如果使用NGINX Ingress,需在Ingress资源中添加CORS相关注解,避免Ingress拦截OPTIONS请求:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: your-api-ingress
  annotations:
    nginx.ingress.kubernetes.io/enable-cors: "true"
    nginx.ingress.kubernetes.io/cors-allow-methods: "GET, POST, PUT, DELETE, OPTIONS"
    nginx.ingress.kubernetes.io/cors-allow-origin: "https://your-angular-domain.com"
    nginx.ingress.kubernetes.io/cors-allow-credentials: "true" # 对应API的AllowCredentials设置
spec:
  rules:
  - host: your-api-hostname.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: your-api-service
            port:
              number: 80

3.2 Traffic Manager与网络策略

  • 确认Azure Traffic Manager没有阻止OPTIONS请求的转发规则,检查其端点监控设置是否仅允许特定方法,需确保OPTIONS被包含。
  • 检查AKS中的网络策略,是否存在拒绝OPTIONS流量的规则,若有需添加允许策略。

4. 排查自定义中间件或安全组件

检查项目中是否存在自定义中间件、WAF组件或认证中间件,可能在CORS中间件之前拦截了OPTIONS请求并返回405。可临时注释非必要中间件,逐步排查定位问题。

内容的提问来源于stack exchange,提问作者KNDM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 13:00:53