как обслуживать ядро ​​asp.net Angular SPA через HTTP POST - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь разработать инструмент LTI , используя ядро ​​asp.net и его шаблон Angular SPA.Система управления обучением могла бы использовать мой инструмент (который является веб-приложением), внедрив его i-frame в свой веб-сайт, и они делают это, используя запрос HTTP POST с дополнительными данными формы, прикрепленными к нему.Если бы я использовал основной MVC-проект asp.net, этот POST-запрос достиг бы того же действия, что и GET-запрос, и желаемое представление было бы обработано, но с шаблоном проекта Angular я бы попал на пустую html-страницу с этим сообщением

Невозможно POST /

Я мог бы обойтись путем добавления действия с атрибутом [Post("/")] и перенаправления на домашнюю страницу с помощью Redirect("/"), но мне было интересноесли есть лучшее решение.

1 Ответ

0 голосов
/ 07 января 2019

Итак, я нашел лучший способ получить страницу, а также сохранить данные формы.Я просто создал пользовательское промежуточное ПО и изменил запрос POST на запрос GET.он сохраняет заголовки и позволяет устанавливать куки, в отличие от Redirect("/")

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