如何通过 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();
});
我正在尝试使用 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();
});