Как обслуживать ядро ​​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();
    });
Другие вопросы по тегам