Comunicação entre sites (usando Javascript ou?)
-
09-06-2019 - |
Pergunta
Aqui está o meu problema: gostaria de me comunicar entre dois sites e estou procurando uma solução limpa.A solução atual usa Javascript, mas existem soluções alternativas desagradáveis devido a restrições (compreensíveis) de script entre sites.
No momento, site A abre uma janela modal contendo site B usando um jQuery plug-in chamado jqModal. Site B faz algum trabalho e retorna alguns resultados para site A.Para retornar essas informações, temos que contornar as restrições de script entre sites - site B cria um iframe que se refere a uma página em site A e inclui *identificadores de fragmentos" contendo as informações a serem retornadas.O iframe é pesquisado por site A para detectar as informações retornadas.É um técnica comum mas é hackeado.
Existem variações como CrossSite e talvez eu pudesse usar um HTTP POST de site B para site A mas estou tentando evitar atualizações de página.
Alguém tem alguma alternativa?
EDITAR:Eu gostaria de evitar ter que salvar o estado em site B.
Solução
Minha melhor sugestão seria criar um webservice em cada site que o outro pudesse chamar com as informações que precisam ser repassadas.Se a segurança for necessária, é fácil adicionar um esquema de autenticação semelhante ao SSL (ou mesmo SSL real, se você preferir) a este sistema para garantir que apenas os dois servidores possam se comunicar com seus respectivos serviços da web.
Isso permitiria evitar o hackeamento inerente a qualquer esquema que envolva a abertura de janelas de um site no outro.
Outras dicas
Com jQuery mais recente que 1.2 você pode usar JSONP
@jmein - você descreveu como criar um pop-up modal (que é exatamente o que o jqModal faz), mas não percebeu que o conteúdo da janela modal é servido por outro domínio.Os dois domínios envolvidos pertencem a duas empresas distintas, portanto não podem ser combinados da maneira que você descreve.
acredito que @pat estava se referindo a isso
"A partir do jQuery 1.2, você pode carregar dados JSON localizados em outro domínio se especificar um retorno de chamada JSONP,"http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback