Как я могу использовать postMessage () в Javascript? - PullRequest
1 голос
/ 17 ноября 2011

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

Ответы [ 2 ]

2 голосов
/ 17 ноября 2011

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

См. На этой странице объяснение того, как работает postMessage.

1 голос
/ 17 ноября 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;
};
...