Angular 8 - POST + Redirect в точности как отправка HTML <form>, но без использования DOM - PullRequest
1 голос
/ 09 апреля 2020

Таких вопросов много, но ни один из них не совсем понятен. Старый функционал, который мне нужно скопировать, создает форму, используя angular JS, добавляет ее, затем отправляет. Это делает запрос POST с данными и перенаправления в то же время. Я не планирую запускать его буквально так ... Если бы я буквально запустил запрос Post через HttpClient, а затем перенаправил его на URL-адрес, конечный пользователь по сути просто сделал бы запрос GET для этого URL-адреса. Следовательно, это должно быть как-то сделано через формы.

Служба запускает эту функцию, поэтому не существует никакого связанного файла шаблона.

У нас есть старый AngularJS код, который мы копируем. Старый код создает элемент формы, добавляет контент, добавляет его непосредственно в DOM, а затем отправляет его:

var input = angular.element('<form>', {
  action: '/someUrl.go',
  method: 'POST'
});
form.append(angular.element('<input>', {
  value: someValue,
  name: someKey
}));
form.appendTo('body').submit();

Я ищу лучший способ сделать то же самое в Angular 8. I знаю, что я мог бы просто использовать Javascript и манипулирование DOM, но должен быть лучший способ.

Мне было бы неправильно использовать Javascript по следующим направлениям:

let form = document.createElement('form');
form.action = '/someUrl.go';
form.method = 'POST';
let input = document.createElement('input');
input.name = "someKey";
input.value = "someValue";
input.type="hidden";
form.appendChild(input);
document.body.appendChild(form);
form.submit();

Я сделал go в ответах по этой теме c (JavaScript отправьте запрос как форма отправки ), но они все еще являются манипуляциями DOM, javascript или jQuery. Как я могу сделать это "правильно", используя машинопись и набор инструментов angular?

1 Ответ

0 голосов
/ 09 апреля 2020

Просто сделайте почтовый запрос, используя HttpClient , а для перенаправления используйте Маршрутизатор .navigate (['/ xxx']) внутри блока подписки почтового запроса.

...