【问题标题】:Blazor WASM Hosted - API call with invalid route returns 200Blazor WASM 托管 - 路由无效的 API 调用返回 200
【发布时间】:2021-12-23 13:41:46
【问题描述】:

我的服务器程序.cs:

WebApplication app = builder.Build();

// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseWebAssemblyDebugging();
}
else
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseBlazorFrameworkFiles();
app.UseStaticFiles();
app.UseRouting();
app.MapControllers();
app.MapFallbackToFile("index.html");

app.Run();

调用不存在的 API 路由时,我收到 200 响应,然后是 Json Invalid 响应:

System.Text.Json.JsonException: '

我的理解是,这是因为这行:

app.MapFallbackToFile("index.html");

这会导致服务器在找不到路由的情况下路由到此 html 页面。

基于这个question,我尝试了各种解决方案,都无济于事。

所以,我恢复到上面的原始代码,然后删除了该行:

app.MapFallbackToFile("index.html");

但是,我仍然收到无效 API 路由的 OK 响应,因此当我尝试将响应内容读取为 Json 时,我仍然收到 JsonException。

我做错了什么?

【问题讨论】:

  • 另一个问题的最高投票答案对我有用。发布您尝试过的确切代码。
  • @HenkHolterman 感谢您的评论。看我回答... Grrr!
  • 附言。虽然我的浏览器缓存了 HTML 响应,但您知道我是否可以安全地假设它不会缓存来自 API 调用的 JSON 响应,这样当结果发生变化时,我就不会继续获得缓存的 JSON 响应?

标签: asp.net-core blazor asp.net-core-webapi


【解决方案1】:

噗!

我链接到 DO WORK 的问题中的解决方案!

我的浏览器已经缓存了原始 api URI 的响应,所以即使在对服务器 Program.cs 进行了更改之后,我的请求仍然会返回缓存的 Index.html 响应。

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 2021-12-17
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    相关资源
    最近更新 更多