Função Ajax não chama Servlet na segunda vez que entro na página

3 respostas
lazaropj

Boa tarde Galera.

A parada é a seguinte.

Tenho uma função ajax que chama uma servlet:

$.ajax({ 
		url: "../paginas/TramitacaoServlet",
		data: {'id_contador': ${contador} ,
				'acao' : 'temTramitacao'
		},
		success: function(data){
			alert(data);
			if(data != '0'){
				alert('Documento  tramitado.');
				return false;
			}else{
				 document.form.action = "tramitar.jsp";
				 document.form.submit();
			}

Quando eu entro pela primeira fez na pagina, um link chama essa funçao e essa função vai na servlet e servlet devolve uma string com a quantidade de registros de acordo com o id_contador que eu passo para a função.

Daí se for diferente de 0, quer dizer que para esse id_contador já tem tramitação para aquele documento e então ele não deixar ele entrar na tela de tramite.

Se retorna 0, quer dizer que não tem tramite para aquele registro e ele deixa o usuario e cadastro um tramite para aquele registro.

A função funfa e tal…

Mas o problema é quando eu entro, cadastro um tramite e entro novamente nessa página. Ela deveria chamar a função e retorna 1, daí ele não deixaria entrar na função, mas ele não faz isso. Ele nem se quiser chama a servlet passada na url da função e então ele deixa eu cadastrar outro tramite, daí fode toda a logica da aplicação.

Não sei oq pode ser… Pq se eu cadastrar um tramite e fechar a pagina e voltar nesse registro, ele vai chamar a servlet e, aí sim, não vai me deixar entrar na página.

Tipo o resultado da função fica em cache no browser… TO usando o IE e não posso usar o Firefox (fdp do cliente não quer)…

Alguem tem alguma ideia?

abraço !!!

3 Respostas

leandro.alves

Já tentou colocar dentro disso ?

jQuery(document).ready(function(){

});
lazaropj

Velho… tentei aqui colocar isso aí q vc falou, mas aí ele nem entrou na função.
Sou novato em JQuery, da uma olhada no meu codigo para ver se eu fiz certo

function Tramitar() {
	alert(${contador});
	$(document).ready(function(){
		$.ajax({ 
			url: "../paginas/TramitacaoServlet",
			data: {'id_contador': ${contador} ,
					'acao' : 'temTramitacao'
			},
			success: function(data){
				alert(data);
				if(data != '0'){
					alert('Documento  tramitado.');
					return false;
				}else{
					 document.form.action = "tramitar.jsp";
					 document.form.submit();
				}
		}});
	});
   
}
leandro.alves

Quando não se tem um debug eficiente (javascript), a dica é isolar os trechos de código…

Tente colocar apena isso em sua página:

<script type='text/javascript'>

jQuery(document).ready(function(){
   alert('ready');
});

</script>

O método ta certo… eu passo os parâmetros assim data: 'param1=value1&param2=value2'

, mas, achei interessante a forma que você fez vou testar mais tarde…

E sugeri o método porque pensei que você precisaria de uma ação a cada acesso a sua página, mas se for para colocar dentro de um método TALVEZ não tenha tanta valia.

Criado 6 de outubro de 2010
Ultima resposta 7 de out. de 2010
Respostas 3
Participantes 2