Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Raygás

ajax.open com domínio externo

Recommended Posts

Olá, estou tendo um grande problema.

 

Eu tenho um site montado em um servidor local, porém ao hospedá-lo eu ainda não consegui realizar o funcionamento de alguns comandos php por questão da configuração do próprio servidor (locaweb).

 

Com isso, resolvi utilizar então meu servidor local para consultar os resultados com os comandos em php com o ajax e imprimir assim em meu domínio atual na locaweb.

 

Comando ajax:

function getDados() {
       
     // Declaração de Variáveis
     var ip = document.getElementById("ip").value;
     var resultado = document.getElementById("conteudomenu");
     var xmlreq = CriaRequest();
      
     // Exibi a imagem de progresso
      resultado.innerHTML = 'carregamento';

     // Iniciar uma requisição
     xmlreq.open("GET", "http://consulta.dominio.com.br/resultado.php?ip=" + ip, false);
      
     // Atribui uma função para ser executada sempre que houver uma mudança de ado
     xmlreq.onreadystatechange = function(){
          
         // Verifica se foi concluído com sucesso e a conexão fechada (readyState=4)
         if (xmlreq.readyState == 4) {
              
             // Verifica se o arquivo foi encontrado com sucesso
             if (xmlreq.status == 200) {
                 resultado.innerHTML = xmlreq.responseText;
             }else{
                 resultado.innerHTML = "Erro: " + xmlreq.statusText;
             }
         }
     };
     xmlreq.send(null);
 }

 

Porém, eu não estou conseguindo realizar isso com sucesso, pois só estou conseguindo imprimir o erro que solicitei no código ajax.

 

Testando o mesmo comando em meu servidor local, eu consigo obter os resultados. O que me leva a crer que também possa ser outra restrição por parte da hospedagem e talvez haja alguma configuração para isso.

 

A única solução que consegui encontrar com relação, foi adicionar a liberação do domínio no php com o seguinte comando:

 

header('Access-Control-Allow-Origin: http://consulta.dominio.com.br'); /ou/ header('Access-Control-Allow-Origin: *');

E executar o ajax em seguida, mas, ainda assim, o erro persiste.

 

Se poder dar qualquer sugestão para resolver este grande problema eu serei eternamente grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ajax não vai acessar mesmo dominios externos, é bloqueio das configurações de segurança dos navegadores.

 

oq vc pode fazer, é enviar um ajax para o seu proprio dominio, e ai esse arquivo faz a requisição externa via server-side. Como se fosse um "proxy" entendeu ?

 

vc requisita com ajax: 'proxie.php' q está no mesmo dominio seu.

e o proxie.php requisita o domínio externo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pela sugestão William.

 

Eu acabei refazendo ele de um modo mais prático, requisitando a página pelo iframe com o javascript.

 

Caso apresente problemas ou alguma instabilidade eu torno a refazer, seguindo a sua sugestão.

 

Brigadão mesmo :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.