Overview

Ao criar um script em ECMAScript (JavaScript, JScript) que acessa um serviço externo ou acessa qualquer recurso externo, não funciona. Em algumas situação aparece erro de acesso a conteúdo cross domain e outras vezes apenas não faz nada.

Mas o que é acesso cross domain? É qualquer acesso que fizermos a um recurso que não está no mesmo domínio que o site atual. Por exemplo: no portal corporativo da minha empresa obter dados de um site externo (site da internet) via JQuery ou conectar a um serviço disponibilizado no Azure. Esse tipo de comportamento é considerado um acesso cross domain.

Solução

Esse problema acontece por causa das configurações atuais do navegador de internet, conforme a zona de segurança que o site estiver sendo executado permitirá funcionar ou não. Nas zonas Internet e Sites Confiáveis não é possível fazer acesso cross domain. Se o site estiver na zona Intranet Local, irá funcionar, a imagem 01 ilustra as zonas. Esta tela está disponível através do menu opções de internet do Internet Explorer.

Imagem 01: Configurações das zonas de segurança

No meu caso estava sendo executado scripts JQuery no SharePoint, e por padrão sempre colocamos os sites SharePoint como sites confiáveis. Como a zona sites confiáveis não permite o acesso cross domain, tive que alterar as configurações do meu navegador.

Para alterar essa configuração, seguir os passos abaixo:

  • Selecionar a zona de segurança e clicar no botão nível personalizado (ou custom level…), a imagem 01 mostra essa interface;
  • Nas configurações de segurança da zona, procurar a opção “Access data sources across domains” e colocá-la como enable, conforme a imagem 02;
  • Acessar o site e ver o script funcionando Winking smile

Imagem 02: Liberando o acesso cross domain de script

Importante: cuidado ao liberar certas configurações no seu navegador de internet, elas podem ter implicações de segurança. A configuração feita neste irá liberar acesso a recursos de outros domínios, evite fazer na zona de internet. Se for fazer faça na zona de sites confiáveis, que é melhor controlado pelo usuário ou administradores de rede. 

Existe outra forma de fazer acesso a scripts cross domin utilizando JSONP, assim não precisamos alterar as configurações do navegador.

Anúncios