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

Asp.Net Core返回404状态码时Firefox显示空白页Chrome正常如何解决

问题原因

Firefox 对空响应体的404状态码处理逻辑和 Chrome 不同:当404响应的Content-Length为0时,Chrome 会自动加载内置的默认404错误页,Firefox 则会直接渲染空白页。你当前代码返回NotFoundObjectResult(null)生成的就是无内容的空响应,因此会触发该兼容问题。

解决方案

方案1:返回非空响应内容

直接修改接口返回逻辑,传入非空的响应内容即可,示例代码如下:

[HttpGet]
[Route("OpenBlobFile", Name = "url")]
public async Task<ActionResult> OpenBlobFile(string fileName, string folder)
{
    // 方式1:返回文本提示
    return NotFound("请求的Blob文件不存在,请检查参数是否正确");
    
    // 方式2:返回结构化的错误对象
    // return new NotFoundObjectResult(new { Code = 404, Message = "资源未找到" });
}

如果需要触发浏览器内置的错误页,可确保返回的HTML格式响应内容大小不低于512字节,即可符合Firefox的错误页渲染规则。

方案2:启用状态码页中间件

如果希望项目全局统一处理状态码返回,可在项目启动配置(Program.cs/Startup.cs)中添加状态码页中间件:

// 启用默认状态码响应页,会自动为4xx/5xx状态码生成符合要求的响应内容
app.UseStatusCodePages();

// 也可以配置跳转到自定义错误页
// app.UseStatusCodePagesWithRedirects("/CustomError/{0}");

配置后返回404时框架会自动生成完整的响应内容,不会出现空白页问题。

额外排查点

如果该接口是文件下载接口,需要确认404返回时没有携带Content-Disposition: attachment响应头,该头会让Firefox将响应识别为下载文件,空内容时也会出现空白页。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:27:00