postMessage против поста - PullRequest
0 голосов
/ 10 мая 2018

Находясь на одном сайте, мы можем использовать следующий код для перехода на другой домен, открыв новую вкладку:

<form action="http://www.aka.com" method="post" target="_blank">
   <input name="firstName" type="text">
    <button >Test me </button>
</form>

Недавно я работал с window.open и собщаться между различными доменами, которые я использовал postMessage метод.У меня есть следующие запросы:

  • Могу ли я использовать метод post, как указано выше, для отправки данных в целевое окно ( aka.com )?
  • Если aka.com является приложением Angular, как я могу получить отправленные данные (например, значение firstName)?
  • Можно ли заменить postMessage, как описано выше, с чем-то вроде using a form and post метода?

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Могу ли я использовать метод post, как описано выше, для отправки данных в целевое окно (aka.com)?

Могу ли я заменить postMessage, как описано выше, чем-то вроде использования формы и метода post?

window.postMessage () и метод POST формы - это, по сути, разные вещи.

Форма POST используется для отправки HTTP-запроса POST на целевой URL. То, что вы хотите сделать, это отправить данные в новое окно.

Вы не должны использовать форму для отправки данных, вместо этого используйте обработчик (click) и делайте это вручную.

Если aka.com является приложением Angular, как я могу получить отправленные данные (например, значение firstName)?

Поскольку aka.com является приложением Angular, оно может не знать, когда проверять данные окна, если вы не прослушиваете событие message глобально. Одним из способов является отправка данных по определенному маршруту в приложении Angular, чтобы он знал, «когда приложение Angular направляется на этот URL-адрес, прослушивает данные окна, в основном устанавливая window.addEventListener("message", receiveMessage, false);.

0 голосов
/ 10 мая 2018

Могу ли я использовать почтовый метод, как указано выше, для отправки данных в целевое окно (aka.com)?

Нет.

Вы можете отправлять данныена URL, и ответ на запрос этого URL появится в новом окне.

Если aka.com - приложение Angular, как я могу получить отправленные данные (например, значение firstName)?

Код на стороне сервера в aka.com должен был бы предоставить его угловому коду при создании страницы, которая загружает этот JS.

Могу ли я заменитьpostMessage, как описано выше, с чем-то вроде использования формы и метода post?

Не без существенного изменения подхода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...