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

时间:2018-12-31 12:46:47

标签: angular .net-core lti asp.net-spa

我正在尝试使用asp.net核心及其Angular SPA模板开发LTI工具。一个学习管理系统可以通过将我的工具(它是一个Web应用程序)嵌入网站中来使用我的工具,而他们可以通过使用HTTP POST请求以及附加的表单数据来实现。如果我将使用asp.net核心MVC项目,则该POST请求将达到GET请求将达到的相同操作,并且将呈现所需的视图,但是使用Angular项目模板,我将到达此消息的空白HTML页面< / p>

  

无法发布/

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

1 个答案:

答案 0 :(得分:1)

因此,我找到了一种获取页面并保存表单数据的更好方法。 我刚刚创建了一个自定义的中间件,并将POST请求更改为GET请求。 与Redirect("/")

不同,它保留标题并允许设置cookie
app.Use(async (context, next) => 
    {
        if (context.Request.IsAuthenticatedWithLti())
            context.Request.Method = HttpMethods.Get;
        await next.Invoke();
    });