Problemas na requisição servlet com javascript [RESOLVIDO]

5 respostas
B

Bom dia.

Sei que já existem muitos tópicos sobre isso, mas nenhum conseguiu resolver o problema, que é o seguinte: preciso, ao disparar um determinado botão ir até uma servlet e buscar uma lista que já está carregada na mesma sessão. Bom, o código abaixo está funcionando perfeitamente no Chrome e no FireFox, porem, no nosso amigo Explorer funciona somente a primeira requisição, se a página for atualizada não funciona mais, só fechando o browser e abrindo de novo.

A função é essa:

function requestServlet(){     
    var req;
    

    if (window.XMLHttpRequest) { 
        req = new XMLHttpRequest();     
    }else if (window.ActiveXObject) {  
        req = new ActiveXObject("Microsoft.XMLHTTP");     
    }   

    var url= "http://si-bruno:8084/Georeferenciamento/ControleServlet";  //alterar aqui 

    req.onreadystatechange = function(){  
        if( req.readyState == 4 && ( req.status == 200 || req.status == 500 )){

            alert('cheguei');
        }  
    };
    

    req.open("GET", url, true); 
    req.send(null);

}

Alguém já passou por isso? Alguma idéia do que pode estar acontecendo?

Obrigado!

5 Respostas

R

Você já tentou usar jquery? Isso pode te abstrair bastante coisa que podem vir a te atrapalhar futuramente no seu projeto.

guilherme.dio

Use JQuery, bem mais fácil de usar…olha um exemplo ai de consulta de uma Pessoa e apresenta a idade:

<script type="text/javascript">
		$(document).ready(function() 
		{
			$('#nomeDoBotao').click(function(event) 
			{
				$.ajax
				({
					  type: 'GET', //TIPO
					  url: 'http://url.com.br/abc/123/', //URL
					  data: {nome: 'Guilherme' }//valores JSON
				}).done(function(response)
				{
					alert(response.idade);
				});
			});
		});
	</script>
B

Não tentei, vou dar uma pesquisada sobre ele…Sou novo em desenvolvimento java(Primeiro Projeto). Obrigado pela dica…

R

Meu amigo,dá uma olhada nas apostilas da caelum,lá tem um bom conteudo pra vc começar, e se vc pretende continuar com desenvolvimento web em java tenta dar uma olhada no vraptor da caelum,que é um excelente framework para web em java.

B

Depois de 2 dias em cima disso, consegui achar uma “gambia” para funcionar no IE. Segue:

function requestServlet(){     
    var req;
    

    if (window.XMLHttpRequest) { 
        req = new XMLHttpRequest();     
    }else if (window.ActiveXObject) {  
        req = new ActiveXObject("Microsoft.XMLHTTP");     
    }   

    var url= "http://si-bruno:8084/Georeferenciamento/ControleServlet";  //alterar aqui 
    url = url + '?t='+ Math.random();

    req.open("POST", url, true); 
    
    req.onreadystatechange = function(){  
        if( req.readyState == 4 && ( req.status == 200 || req.status == 500 )){
            
            alert('aqui');
        }  
    };
    
    
    req.send(null);

}

A diferença está nessas linhas:

url = url + '?t='+ Math.random();
    req.open("POST", url, true);

Por algum motivo o IE segura a requisição em cache, desta forma é criado um post e passado um valor randomico para não ter problemas com o cache.

Embora tenha resolvido, vou acabar ficando com o jquery mesmo, não to afim de ficar matando um leão por dia :D.
Obrigado a todos!.

Criado 18 de maio de 2012
Ultima resposta 18 de mai. de 2012
Respostas 5
Participantes 3