Pergunta

Eu tenho um ambiente que não permite o scripting do lado do servidor realmente (é extremamente difícil de obter um script instalado no servidor).Eu tentei usar um iframe para violar javascript mesma origem poilcy;no entanto, isso não funcionou.Existem outras soluções eu não estou ciente de?

Obrigado!

Foi útil?

Solução

Como David Dorward mencionado, JSON-P é o mais simples e mais rápido;no entanto, há um outro truque, especificamente usando dois iframes.

Dois contornar este problema sem o uso de JSONP, você pode fazer o seguinte.Esta técnica pressupõe que você tenha algum tipo de desenvolvimento o acesso à página principal.

Existem três páginas em dois domínios/sites.

  1. Página principal
  2. Conteúdo da página
  3. Cross-domain comunicação página (aka "xdcomm")

Páginas do pai e xdcomm páginas hospedadas no mesmo domínio, o conteúdo da página está hospedada em qualquer outro domínio.A página de conteúdo é incorporado como um iframe na página principal e o xdcomm página é incorporado como um iframe oculto na página de conteúdo.

enter image description here

O xdcomm página contém um script muito simples que detecta OBTER parâmetros de seqüência de consulta, analisa que a seqüência de caracteres para method e args variáveis (onde args é um codificados no formato JSON de seqüência de caracteres) e, em seguida, executa o método especificado com os argumentos especificados na página principal.Um exemplo pode ser visto aqui (ver código-fonte).

Apesar de JavaScript Política de Mesma Origem restringe o código em um domínio acessem o de outro, não importa se os domínios são aninhados uns dentro dos outros (domínio, aninhado dentro do domínio B, aninhada dentro de Um domínio).

Então, em poucas palavras, o conteúdo da página, envia mensagens para a página principal via xdcomm página alterando a fonte do iframe para algo como http://domaina.com/xdcomm.html?src=foo&args=[1,2,3,4].Isto seria equivalente a executar foo(1,2,3,4) na página principal.

Também, saber que já existem bibliotecas que ajudá-lo com isso, como easyxdm.O que eu já expliquei aqui é a base de uma das técnicas que eles usam, e embora possa não ser tão chique, é, certamente, um pleno funcionamento e leve implementação.

Outras dicas

Espero não, pois seria um buraco de segurança! :)

Mas se seus dois sites são subdomínios no mesmo domínio, talvez document.Domain pode ajudar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top