如何通过 HTTP POST 服务 asp.net 核心 Angular SPA

how to serve asp.net core Angular SPA over HTTP POST

我正在尝试使用 asp.net 核心及其 Angular SPA 模板开发 LTI 工具。学习管理系统可以通过在他们的网站中嵌入 i-frame 来使用我的工具(这是一个网络应用程序),他们通过使用附加了附加表单数据的 HTTP POST 请求来实现。如果我使用 asp.net 核心 MVC 项目,那么 POST 请求将达到与 GET 请求相同的操作,并且将呈现所需的视图,但是使用 Angular 项目模板我会到达带有此消息

的空白 html 页面

Cannot POST /

我可以通过添加带有 [Post("/")] 属性的操作并使用 Redirect("/") 重定向到主页来解决这个问题,但我想知道是否有更好的解决方案。

所以我找到了一种获取页面并保留表单数据的更好方法。 我刚刚创建了一个自定义中间件并将 POST 请求更改为 GET 请求。 它保留 headers 并允许设置 cookie,这与 Redirect("/")

不同
app.Use(async (context, next) => 
    {
        if (context.Request.IsAuthenticatedWithLti())
            context.Request.Method = HttpMethods.Get;
        await next.Invoke();
    });