2014-09-20 2 views
1

У меня есть основной веб-сайт, который вызывает appi с другого сайта, поэтому Cross Domain возникает как проблема. Я пытаюсь использовать метод window.postMessage, но, похоже, это не работает для меня.Перекрестный домен postMessage Issue

//This is the appi that sends the message. 
$(document).ready(function() { 
    solution01.ini(); 

}); 
var solution01= { 


    ini:function(){ 
    window.parent.postMessage('Hello World', 'http://webappi:0000'); 

}, 
} 

//this is in the Main Page that have the IFrame that calls the appi above. 

$(document).ready(function() { 


mainSolution.ini(); 
}); 

var mainSolution = { 


    ini:function(){ 
     window.addEventListener('message', mainSolution.handleResponse, false); 
    }, 

    handleResponse:function(evt) { 

     if (evt.origin === 'http://webappi:0000') 
     { 
      alert("I'm happy to say: "+evt.data); 
     }else{ 

      return; 
     } 
    }, 
} 

Проблема не возникает. Любые рекомендации об этом процессе, чего я не вижу? PS. Я знал о проблемах с window.addEventListener и Cross Browsing с IE и некоторыми старыми браузерами Opera, но сначала мне просто нужно получить простой «мир», используя firefox, но пока что без успеха. Приветствую.

ответ

4

Факт:: Наши веб-браузеры не позволяют передавать параметры по перекрестным веб-соединениям api/wcf.

Я столкнулся с этой проблемой с помощью web api.

Решение: Решение, которое сработало для меня было, я изменил свой веб-api, чтобы параметры проходили через перекрестный домен. Я использовал пошаговые инструкции из этого сообщения: http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api

Если он не работает, попробуйте обновить пакет ASP.Net Web API через nuget.