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

ASP.NET Core 7 Web API中OPTIONS请求返回405错误求助

问题原因与解决方案
  • 核心原因:中间件顺序错误
    ASP.NET Core的中间件执行顺序直接决定请求的处理流程,当前配置中UseCors放在了UseAuthentication和UseAuthorization之后。预检OPTIONS请求不会携带任何认证凭证,会先被认证/授权中间件拦截,返回405方法不允许,根本无法走到CORS中间件的处理逻辑。

  • 修复步骤
    调整中间件顺序,将UseCors移到UseAuthentication和UseAuthorization之前,同时确保在UseHttpsRedirection之后,正确的配置如下:

    app.UseHttpsRedirection();
    
    // 优先处理CORS,保证预检请求能被正确响应
    app.UseCors();
    
    app.UseAuthentication();
    app.UseAuthorization();
    
    app.MapControllers();
    
    app.Run();
    
  • 额外说明
    你配置的全允许CORS策略本身没问题,但顺序错误导致规则无法作用于预检请求。POST请求能正常工作,是因为它可能属于浏览器认定的「简单请求」(比如符合特定Content-Type、无自定义头等条件),这类请求不会触发预检;而React Query的mutation可能触发了「非简单请求」,所以浏览器会自动发送OPTIONS预检请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 04:32:05