【发布时间】: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