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

带授权的ASP.NET托管Blazor WebAssembly加载blazor.boot.json报fetch失败

Blazor WASM授权后blazor.boot.json加载失败解决方案

核心原因

授权中间件拦截了Blazor运行时必需的blazor.boot.json静态资源请求,身份验证跳转流程中断了资源加载。Chrome中Fiddler抓包显示的304状态码仅代表该资源本地缓存命中,但因请求发起时身份上下文未完成验证,浏览器主动终止了资源读取,因此控制台仍抛出fetch失败报错,火狐下对应错误标识为NS_BINDING_ABORTED。

修复步骤

  • 配置静态资源豁免授权验证,在Program.cs中将/_framework路径下的Blazor核心静态资源设置为允许匿名访问,注意该配置必须放在app.UseAuthorization()之前:
using Microsoft.AspNetCore.Authorization;

app.UseWhen(context => context.Request.Path.StartsWithSegments("/_framework"), appBuilder =>
{
    appBuilder.Use(async (context, next) =>
    {
        context.SetEndpoint(new Endpoint(
            _ => Task.CompletedTask,
            new EndpointMetadataCollection(new AllowAnonymousAttribute()),
            "BlazorStaticResourceAnonymousAccess"));
        await next();
    });
});
  • 若开启了PWA离线支持,修改service-worker.published.js中的资源匹配规则,排除授权回调路径的缓存拦截,避免缓存的未授权状态资源覆盖正常请求。
  • 清除浏览器站点缓存、Cookie后执行强制刷新(Ctrl+Shift+R),避免304缓存命中干扰配置验证。
  • 检查反向代理(Nginx/IIS/云服务应用托管平台)层面的授权与重定向规则,非代码层面的代理规则变更和代码版本无关,也会触发该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:39:00