2016-09-26 5 views
0

Итак, у меня есть приложение, работающее на Bluemix (скажем, route is- myapp1.mybluemix.net) , и у меня есть второе приложение (route - myapp2.mybluemix.net).
Теперь я хочу, чтобы отправить сообщение черезВыполняет ли window.postMessage() различные приложения на разных серверах?

PostMessage ("Hello", "http://myapp2.mybluemix.net") от myapp1.mybluemix.net.

Если я делаю это с обоими приложениями в одном ухе или упаковываю сервер и развертываю его на Bluemix. Я могу это сделать. Но не с разными приложениями.

Я не понимаю поведения. Пожалуйста помоги. После кода App1 -..

<script> 
function Menu() { 
    var child = window.open("http://myapp2.mybluemix.net/page2.jsp",'name',width=200,height=200); 
    child.onload=function(){ 
    child.postMessage('hellow','http://myapp2.mybluemix.net/'); 
    } 
    }; 
    </script> 
    <input type="button" value="Try it" onclick="Menu()"/> 

И App2 (который http://myapp2.mybluemix.net/page2.jsp)-

<script type="text/javascript"> 
function listenMessage(msg) { 
alert(msg.data); 
} 
window.addEventListener("message", listenMessage, false); 

</script> 
<p id="message">This is an Example!</p> 
+0

Возможно, некоторые [документы] (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) помогут вам понять –

+0

Да, я искал его как 100 раз, но я не Понимаю. В идеале, он должен работать. – yashpandey

+0

, поскольку вы не указали никаких подробностей о том, как сосуществуют эти два «приложения», тогда я могу предположить, что вы неправильно поняли, когда и как работает postMessage, - это ключ к тому, что есть фреймы (iframes) и/или window.open ... вы не может общаться так на двух разных вкладках в браузере или в двух разных браузерах. –

ответ

0

Вы диагностируется проблему

postMessage сам код прекрасен Это не потому что вы никогда не называете это.

load event can ' t быть обнаружен по происхождению.

Have App 2 прислушиваться к своему собственному load событию и использовать window.opener.postMessage, чтобы объявить App 1, когда он будет готов.

+0

Я редактировал код и удалял child.onload, но теперь я хочу отправить некоторые данные из App1 в App2 и манипулировать им в App2. Я не знаю, почему сообщение не идет из App1 в App2, хотя сообщение из App2 успешно получено App1. – yashpandey