Domínio cruzado se 2 scripts do mesmo domínio?
-
05-07-2019 - |
Pergunta
Eu tenho um arquivo JS que coloca um iframe em todos os sites está.
Tanto o JS quanto o local do iframe vem do mesmo domínio, o meu.
De alguma forma, posso me comunicar de dentro do iframe ao script externo,
O que não está funcionando no meu domínio, mas é chamado dele?
Eu sei sobre o JSONP, mas estou procurando uma maneira melhor, se possível
Solução
É muito simples. A localização do documento precisa ser servida a partir do mesmo domínio que a localização do script. Caso contrário, o script receberá um erro de "acesso negado".
Outras dicas
Se você estiver fornecendo um script para outras pessoas usarem, poderá fazer com que elas carreguem easyxdm o que permitiria que seu script se comunique com o documento carregado no iFrame (se ele também tiver a biblioteca EasyXDM configurada). Você também precisaria que eles hospedem um arquivo HTML simples em seu domínio, caso o EasyXDM não possa usar o PostMessage e precisar recorrer ao uso da solução de hash/fragmento.
Demos disso podem ser vistos aqui