Ir para conteúdo

POWERED BY:

Arquivado

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

joao1245

Ajax síncrono - Erro Esquisito

Recommended Posts

Olá pessoal, gostaria de saber se alguém poderia me ajudar com esse erro que está ocorrendo no IE 7 e 8 quando chamo minha função que usa ajax síncrono para carregar um arquivo .html.

Tenho o arquivo ajaxSyncrono.html com a função ajax() que é responsável por carregar o outro arquivo, no caso o nomes.html e depois jogar o conteúdo em uma textarea.

Então, como falei está dando um erro esquisito de acesso no IE 7 e 8, nos outros browser está funcionando normal!!. O erro é o seguinte: Acesso Negado.

 

Já procurei referencia sobre o erro na net, mas não encontrei absolutamente nada sobre esse erro, então gostaria de saber se alguém poderia me ajudar a descobrir o por que da ocorrência desse erro.

 

O conteúdo do arquivo ajaxSyncrono.html é:

 

<html>
<head>
<script>
window.onerror = viewError;
function viewError(msg, url, line){
    var string = 'Uma exceção ocorreu!';
        string += '\n\nMensagem de Erro: ' + msg;
		string += '\n\nURL: ' + url;
        string += '\n\nLinha: ' + line;
		alert(string);
}
function getBrowser() {   
    if(window.XMLHttpRequest){   
        return "mozilla";   
    }else if(window.ActiveXObject){   
        return "ie";   
    }   
}   
  
function doXMLRequester(){   
    if(getBrowser() == "ie"){   
        return new ActiveXObject("Microsoft.XMLHTTP");   
    }else if(getBrowser() == "mozilla"){   
        return new XMLHttpRequest();   
    }   
}   
  
function ajax(){   
	var obj = document.getElementById('box'); 
	  xmlHttp = doXMLRequester();   
      xmlHttp.open("GET","nomes.html",false);   
      xmlHttp.send(null);   
      obj.value = xmlHttp.responseText;   
}  
function getData(){
  ajax();
}
</script>
</head>
<body>
<textarea rows="10" cols="40" id="box"></textarea>
<input type="button" value="load" onclick="javascript:getData();"/>
</body>
</html>

O conteúdo do arquivo nomes.html é:

 

   <html>
  <head></head>
  <body>
 <p>Arquivo a ser carregado!</p>
 </body>
 </html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o teu instânciamento do objeto 'XMLHttpRequest', está me parecendo estranha..

já tentou alguma outra forma?

http://my.opera.com/Balala/blog/index.dml/tag/ajax

 

Ficaria:

function doXMLRequester(){   
    if(window.XMLHttpRequest)
    {
        return new XMLHttpRequest();
    } else
    if(window.ActiveXObject)
    {
        var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
        
        for(var i = 0; i < prefixes.length; i++)
        {
            try
            {
                return new ActiveXObject(prefixes[i] + ".XMLHTTP");
            } catch (e) {}
        }
    }
}
  
function ajax(){   
        var obj = document.getElementById('box'); 
          xmlHttp = doXMLRequester();   
      xmlHttp.open("GET","nomes.html",false);   
      xmlHttp.send(null);   
      obj.value = xmlHttp.responseText;   
}  
function getData(){
  ajax();
}
você está abrindo como GET, não vi nenhum motivo especial pra isso. Tentou mudar pra POST?

 

Onde exatamente aparecesse essa mensagem de 'Acesso Negado'?

você está rodando localmente? num host? viu isso no console? na própria página?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Willian, primeiramente obrigado por tentar achar uma solução para meu problema. A respeito das perguntas que fez, estou rodando meu script em minha própria máquina, no caso localmente e a respeito de onde vi a mensagem de erro, a mensagem é exibida pela função viewError que é executada caso ocorra algum erro ou exceção na página.

Como disse esse erro só ocorre no IE 7 e 8 no firefox, opera, chrome e outros funciona normalmente!!!!

A respeito do modo de requisição tem que ser GET mesmo!!!

Substitui o codigo da função doXMLRequester que tinha feito pelo código que você fez, mas mesmo assim não funcionou nem no IE 7 nem no 8.

Estou precisando muito resolver esse problema!!Estou ficando maluco já!!!

Se você ou alguém + puder me ajudar ficarei muito grato!!!!!

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.