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

Mac M1上Blazor WASM项目HttpClient调用失败求助

Blazor WASM在Mac M1上调用Web API报错的排查方案

这个错误的核心原因是:GetFromJsonAsync方法期望服务器返回JSON格式数据,但实际收到的是HTML内容(以<开头,比如404/500错误页面),导致JSON解析失败。结合Windows和Mac的运行差异,具体排查方向如下:

  • 检查API请求的基地址与端口
    Windows和Mac上,Web API项目的默认启动端口可能不同。确认Blazor WASM的HttpClient基地址配置是否正确:

    // 查看Program.cs中的HttpClient配置
    builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
    

    同时检查Mac上Web API的实际运行地址(比如浏览器地址栏显示的端口),确保Blazor的请求地址与API的实际地址一致。

  • 确认Web API项目已启动
    在Mac的Visual Studio中,默认可能只启动Blazor WASM项目。右键解决方案 → 设置启动项目,将Web API和Blazor项目都设置为启动状态,确保两者同时运行。

  • 排查跨域配置
    若Blazor和Web API运行在不同端口,需确保Web API已配置允许跨域请求:

    // 在Web API的Program.cs中添加CORS配置
    builder.Services.AddCors(options =>
    {
        options.AddPolicy("AllowBlazor", policy =>
        {
            policy.WithOrigins("https://localhost:xxxx", "http://localhost:yyyy") // 替换为Blazor的实际运行地址
                  .AllowAnyHeader()
                  .AllowAnyMethod();
        });
    });
    app.UseCors("AllowBlazor");
    
  • 修复HTTPS证书信任问题
    Mac上若未信任ASP.NET Core开发证书,可能导致请求被拦截返回错误页面。在终端执行以下命令信任证书:

    dotnet dev-certs https --trust
    

    执行完成后重启Visual Studio和项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 23:45:41