Как обслуживать ядро asp.net Angular SPA через HTTP POST
Я пытаюсь разработать инструмент LTI, используя ядро asp.net и его шаблон Angular SPA. Система управления обучением могла бы использовать мой инструмент (который является веб-приложением), внедрив его i-frame в свой веб-сайт, и они делают это, используя запрос HTTP POST с дополнительными данными формы, прикрепленными к нему. Если бы я использовал основной MVC-проект asp.net, этот POST-запрос достиг бы того же действия, что и GET-запрос, и желаемое представление отобразилось бы, но с шаблоном Angular Project я бы пришел на пустую html-страницу с этим сообщением.
Не удается POST /
Я мог бы обойти, добавив действие с [Post("/")]
атрибут и перенаправить на домашнюю страницу с помощью Redirect("/")
но мне было интересно, есть ли лучшее решение.
1 ответ
Поэтому я нашел лучший способ получить страницу, а также сохранить данные формы. Я просто создал пользовательское промежуточное ПО и изменил запрос POST на запрос GET. это сохраняет заголовки и позволяет устанавливать куки, в отличие от Redirect("/")
app.Use(async (context, next) =>
{
if (context.Request.IsAuthenticatedWithLti())
context.Request.Method = HttpMethods.Get;
await next.Invoke();
});