Как использовать postMessage() в Javascript?

Можно ли использовать метод postMessage() в Javascript для выполнения междоменных вызовов POST, GET, PUT и т. д.? Если да, то как? И как передать заголовки и данные?


person Groppe    schedule 17.11.2011    source источник


Ответы (2)


Это двусторонняя реализация, означающая, что страница, которую вы хотите вызвать, должна иметь обратный вызов, который прослушивает такое сообщение и дает соответствующий ответ. Вы не можете просто использовать его как замену подкачки для AJAX. Лучший способ для этого — использовать прокси-сервер на стороне сервера.

Посетите эту страницу, чтобы узнать, как работает postMessage.

person Alex Turpin    schedule 17.11.2011

Да, это возможно.

здесь есть хорошая демонстрация того, что именно вам нужно.

document.getElementById("iframe").contentWindow.postMessage(
        document.getElementById("message").value,
        "http://anotherdomain.com"
);

обрабатывается со второй стороны с

window.onmessage = function(e){
  if ( e.origin !== "http://html5demos.com" ) {
    return;
  }

  document.getElementById("test").innerHTML = e.origin + " said: " + e.data;
};
person Martin.    schedule 17.11.2011