Resposta Servlet via Ajax, diferentes servidores

0 respostas
w1l14n

Bom dia Pessoal,

Eu tenho uma servlet que roda no servidor A.

Em um servidor B eu tenho uma página que faz a chamada na Servlet do servidor A e processa a resposta.

Eu faço tudo via ajax.

Aqui o meu javascript da página no servidor B que faz uma chamada na servlet via ajax:

<script type="text/javascript">

	var ajax = null;
	function onPesquisar(){
		try
		{
			document.getElementById('clResultado').innerHTML = ' ';
			document.getElementById('clDownload').innerHTML = ' ';
			document.getElementById('clImagemResultado').innerHTML = ' ';
			document.getElementById('clImagemDownload').innerHTML = ' ';
			document.getElementById('linharesultado').innerHTML = '&nbsp;';
			var cpfCnpj = document.frmPesquisa.cpfCnpj.value;
			var placa = document.frmPesquisa.placa.value;
			if(cpfCnpj == ''){
				alert('Informe o CPF ou CPNJ');
				return;
			}
			if(placa == ''){
				alert('Informe a placa');
				return;
			}
		
	    	if (window.ActiveXObject){
		    	ajax = new ActiveXObject('Microsoft.XMLHTTP');
	    	}
	    	else if (window.XMLHttpRequest){
				ajax = new XMLHttpRequest();
	    	}
	    	if(ajax != null){
				ajax.open('GET','http://10.0.0.105:9090/psqCliente/pesquisaSituacaoCliente?cpfCnpj='+cpfCnpj+'&placa='+placa,true);
				ajax.onreadystatechange = reposta; 
				ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
				ajax.send(null);
			}
		}
		catch(err)
		{
			document.getElementById('clResultado').innerHTML = 'Não foi possível realizar a consulta.';
			document.getElementById('clImagemResultado').innerHTML = '<img src="imagens/bt_block.gif" width="51" height="54" />';			
			return;
		}		
	}
	
	function reposta(){
		if (ajax != null && ajax.readyState == 4){
			if (ajax.status == 200){
				retornoPesquisa(ajax.responseText);
			}else if(ajax.status==0){
				alert("Nenhuma reposta para a consulta.");
			}
		}
	}	
			
	function retornoPesquisa(resposta){
		var ret = eval(resposta);
		if(ret[0].url){
			document.getElementById('clResultado').innerHTML = ret[0].strRetorno;
			document.getElementById('clDownload').innerHTML = ret[0].url;
			document.getElementById('clImagemDownload').innerHTML = '<img src="imagens/bt_download.gif" width="51" height="54" />';
			if(ret[0].strRetorno != ''){
				document.getElementById('clImagemResultado').innerHTML = '<img src="imagens/bt_block.gif" width="51" height="54" />';
			}
		}else{
			document.getElementById('clResultado').innerHTML = ret[0].strRetorno;
			document.getElementById('clImagemResultado').innerHTML = '<img src="imagens/bt_block.gif" width="51" height="54" />';
		}
		document.getElementById('linharesultado').innerHTML = 'RESULTADO';
	}
</script>

Quando eu executo a chamada na página estando ela e a Servlet no mesmo servidor, funciona normalmente, mas quando eu coloco a página no outro servidor para fazer a mesma chamada, não funciona.

Existe alguma coisa que não fiz para funcionar???

Os 2 servidores são tomcat e eu tenho que manter página e servlet em servidores diferentes.

Depurando eu vi que a página estando no servidor B, chama a Servlet e ela retorna a reposta correta, só que o meu ajax.status é sempre 0 e com isso não executa nada.

Via firebug eu não vi nenhum erro de reposta.

Alguém poderia me ajudar?

Criado 18 de outubro de 2010
Respostas 0
Participantes 1