Angular 7: перенос данных из одного приложения в другое - PullRequest
2 голосов
/ 18 июня 2019

У меня 2 угловых приложения. Я хочу передать данные из одного приложения в другое приложение, которые работают в другом домене. Я пытался с window.postMessage, но я не получаю никаких данных во 2-м приложении.

1-е приложение имеет код ниже

const w = window.open('http://192.168.5.134:1210/', ''); 
w.postMessage('Hello Message!', 'http://localhost:4200');

2-е приложение имеет код ниже

  window.addEventListener("message", receiveMessage, false);

  function receiveMessage(event) {
    alert(event.origin);
    if (event.origin !== "http://localhost:4200") {
      return;
    }
    alert(event.data.data);

  }

Ответы [ 2 ]

1 голос
/ 18 июня 2019

По соображениям безопасности два разных домена не могут общаться друг с другом.

Это касается postMessage, localStorage или всего, что связано с вашим браузером.

Единственный подходящий вариант - заставить их общаться с третьей стороной, пусть это будет отдельный клиент, API или что-то еще, что не связано с самим браузером.

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

0 голосов
/ 18 июня 2019

Если у вас есть 2 приложения, которые работают в другом домене, это означает, что лучший способ общаться друг с другом - это настроить API, который разрешает такое взаимодействие. Так что вам нужен бэкэнд, который обрабатывает API.

...