gpt4 book ai didi

asp.net-core - 如何使用 ASP.Net Core 3、SPA 应用程序对无效的 api 请求返回错误

转载 作者:行者123 更新时间:2023-12-04 14:45:42 25 4
gpt4 key购买 nike

我在 ASP.Net Core 3 中使用 SPA (React) 应用程序。

发生的情况是任何请求都会首先到达后端并允许 .Net 尝试路由它,如果没有找到路由,它会返回 index.html 并假设 SPA 可以处理路由。

大多数时候我对此很满意,但我想知道是否有办法排除任何路由器到 api/

我发现在任何编造的 api/MadeUp/Request 上返回 index.html(带有 200)非常烦人。我不能让它在无效的 api 请求上返回 500,但仍然允许 SPA 管理任何其他请求(即返回 index.html)吗?

最佳答案

您可以在 UseEndpoint()UseSpa() 之间添加一个中间件,如果请求 uri 以 /接口(interface)

app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller}/{action=Index}/{id?}");
});

app.Use((context, next) =>
{
if(context.Request.Path.StartsWithSegments(new PathString("api")))
{
context.Response.StatusCode = StatusCodes.Status404NotFound;
return Task.CompletedTask;
}

return next();
});

app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";

if (env.IsDevelopment())
{
spa.UseReactDevelopmentServer(npmScript: "start");
}
});

关于asp.net-core - 如何使用 ASP.Net Core 3、SPA 应用程序对无效的 api 请求返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58567135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com