Ajax + servlet

Olá…

preciso de uma ajuda.
Estou tentando fazer uma javascript(ajax) para enviar algo para a servlet e retornar para a jsp.
No IE funciona beleza, mas no Ffox ele dá pau.
Quando ele entra na linha [var texto = req.responseText;] ele não sei pq dá algum tipo de pau.
Eu sei que é ali, pq já coloquei vários alerts e quando ele entra em req.onreadystatechange=2 ele começa a executar outras funções
de javascript que não estão aqui no post mas tenho no meu código.
Alguém sabe o pq ou pelo menos explicar isso?

[code]var req = null;
var isIE;
var invalidTime = “true”;
var status;
function verificaAgenda(total){
status = “true”;
qtdLinhas = parseInt(document.getElementById(“qtdLote”).value);
agenda = new Array();
horas = new Array();
minutos = new Array();
lotesInvalidos = new Array();
j = 1;

for (i=1; i<=qtdLinhas; i++){
	agenda[i] = parseInt(document.getElementById('agendaLote'+i).value);
	if (agenda[i] == 0){
		horas[i] 	= parseInt(document.getElementById('hora'+i).value);
		minutos[i]	= parseInt(document.getElementById('minuto'+i).value);
		requisicaoAjax(horas[i],minutos[i]);	
		if (invalidTime == "true"){
			lotesInvalidos[j] = i;				
			j++;
		}
	}
}
if (status == "false"){
	var stringErro = "Verifique o horário de agendamento da seção: <br/>"
	for (k=1; k<lotesInvalidos.length; k++){
		stringErro =stringErro + "[<b>"+lotesInvalidos[k]+"</b>] ";
	}
	document.getElementById("msgAgendamento").innerHTML=stringErro;
	openModal('msgAlert',326,160);
} else if (status == "true"){
		VerificaCampo(total);
}

}

function requisicaoAjax(horas, minutos){
if (window.ActiveXObject) {
try {
req = new ActiveXObject(‘Microsoft.XMLHTTP’);
isIE = true;
} catch (e) {
try {
req = new ActiveXObject(‘Msxml2.XMLHTTP’);
isIE = true;
} catch (e) {
req = null;
}
}
} else if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
if (req.overrideMimeType) {
req.overrideMimeType(‘text/xml’);
}
}
if(req != null){
var url = “…/servlet/controle.AjaxTime?horas=”+horas+"&minutos="+minutos;
req.onreadystatechange = statusAjax;
req.open(‘GET’,url,false);
req.send(null);
}
}

function statusAjax(){
if(req.readyState == 4 && req.status == 200){
var texto = req.responseText;
if (texto == “false”){
status = “false”;
invalidTime = “true”;
} else {
invalidTime = “false”;
}
}
}

[/code]

Remova as linhas 53 e 54.

Inclua o código abaixo após a linha 60 e antes da 61. Uma dia: Faça um JS separado para o AJAX.

   // Se o método de envio for POST, altera o tipo MIME para o envio de dados
   if (method == "POST")
      httpRequest.setRequestHeader('Content-Type', "application/x-www-form-urlencoded; charset=ISO-8859-1");

Olá,

Com exceção do caso de aprendizagem, na minha opinião pessoas que implementam AJAX na mão sofrem de desvio bipolar :wink:

Aconselho você a utilizar algum framework para isso, assim você seria bem mais produtivo. O que realmente aconselho -caso você não esteja trabalhando com JSF- é o DWR, ele é o melhor framework AJAX para Java, sem dúvida.

Site,
http://getahead.org/dwr/

Bom lugar para aprender sobre o framework,
http://www.handersonfrota.com.br/artigos-tutoriais/dwr/

Abraços.