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

ASP.NET Web API部署Plesk后与React前端的CORS策略失效问题

解决ASP.NET Web API部署到Plesk后的CORS问题

针对部署Plesk后CORS失效的问题,按以下步骤排查修复:

  • 确认ASP.NET Core CORS中间件顺序
    CORS中间件必须放在app.UseRouting()之后、app.UseAuthorization()之前,顺序错误会导致配置完全不生效。正确配置示例:

    var builder = WebApplication.CreateBuilder(args);
    builder.Services.AddCors(options =>
    {
        options.AddPolicy("FrontendOrigin",
            policy => policy.WithOrigins("https://doctor.echowhite.com")
                            .AllowAnyHeader()
                            .AllowAnyMethod()
                            .AllowCredentials()); // 前端带认证信息时必须添加
    });
    
    builder.Services.AddControllers();
    
    var app = builder.Build();
    app.UseHttpsRedirection();
    app.UseRouting();
    app.UseCors("FrontendOrigin"); // 关键位置
    app.UseAuthorization();
    app.MapControllers();
    app.Run();
    
  • 禁用Plesk自带的IIS CORS模块
    Plesk的IIS环境可能自带CORS配置模块,会和ASP.NET Core的CORS设置冲突。进入Plesk网站管理面板,找到「HTTP响应头」或「CORS」设置项,禁用IIS层面的CORS配置,完全依赖ASP.NET Core的代码配置。

  • 检查Plesk反向代理/URL重写规则
    如果Plesk配置了反向代理或URL重写,可能会修改或丢失请求的Origin头。在「URL重写」设置中添加规则保留该头:

    <rule name="Preserve Origin Header" stopProcessing="true">
        <match url=".*" />
        <action type="Rewrite" url="{REQUEST_URI}" />
        <serverVariables>
            <set name="HTTP_ORIGIN" value="{HTTP_ORIGIN}" />
        </serverVariables>
    </rule>
    
  • 验证请求的Origin头
    用浏览器开发者工具(Network标签)查看前端请求的Origin字段,确认和配置的https://doctor.echowhite.com完全一致(注意是否带www、HTTP/HTTPS是否匹配),不一致则调整CORS配置的Origin值。

  • 检查HTTPS与证书有效性
    确保API部署后使用HTTPS且SSL证书有效,前端HTTPS请求无法访问HTTP API,会触发CORS错误。同时确认Plesk中已开启强制HTTPS跳转。

  • 测试API响应头
    用curl或Postman直接请求API,查看响应头是否包含Access-Control-Allow-Origin、Access-Control-Allow-Methods等CORS相关字段。如果没有,排查是否有全局过滤器、其他中间件覆盖了响应头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 18:53:21