[AJUDA] AJAX Solicitação e Resposta (Quase desistindo !)

Galera, estou aprendendo AJAX no meu trabalho, e estou quebrando a cabeça para fazer algo simples.

Vou colar e quem puder me indica o que está errado:

AJAX:


	function recuperaFuncionalidades(id)
	{ 
		listaFuncionalidades = document.getElementsByName("funcionalidadeModulo"); 
		ajax.open("POST", action, true); 
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
		
		ajax.onreadystatechange = function(){
 
			//enquanto estiver processando...emite a msg de carregando 
			alert('estado:'+ajax.readyState);
			if(ajax.readyState == 1) { 
				listaFuncionalidades.value = "Carregando...";  // OBS: Não preenche o combo não sei porque !!
			} 
			
			//após ser processado - chama função processXML que vai varrer os dados 
			if(ajax.readyState == 4 ) { 
				
				if(ajax.responseXML) {
					processXMLFunc(ajax.responseXML); 
				} 
				else { 
					//caso não seja um arquivo XML emite a mensagem abaixo 
					listaFuncionalidades.innerHTML = "Selecione a categoria"; 
				} 
			} 
			
		} 
		alert('Envia o Pedido');
		ajax.send("operacao=buscaFuncs&id=1");
	}
		
	function processXMLFunc(obj){ 
		
		alert('Entrou processXMLFunc');
		
		
		var dataArray = obj.getElementsByTagName("listFuncionalidadeModulo"); 
		alert('achou:'+parseInt(dataArray.length));
		
                               //total de elementos contidos
		if(dataArray.length > 0) { 
			alert(101);
			//percorre o arquivo XML paara extrair os dados 
			for(var i = 0 ; i < dataArray.length ; i++) { 

				var item = dataArray[i]; 
	
				//contéudo dos campos no arquivo XML 
				var codigo = item.getElementsByTagName("codigo")[0].firstChild.nodeValue; 
				var descricao = item.getElementsByTagName("descricao")[0].firstChild.nodeValue; 
				idOpcao.innerHTML = ""; //Selecione a seção 
				
				//cria um novo option dinamicamente 
				var novo = document.createElement("option"); 
				//atribui um ID a esse elemento 
				novo.setAttribute("id", "opcoes"); 
				//atribui um valor 
				novo.value = codigo; 
				//atribui um texto 
				novo.text = descricao; 
				//finalmente adiciona o novo elemento 
				document.frmAjax.codSec.options.add(novo); 
			} 
		} 
		else { 
			alert('else');
			//caso o XML volte vazio, printa a mensagem abaixo 
			listaFuncionalidades.innerHTML = "Selecione a categoria"; // Não exibe essa mensagem em lugar nenhum !!
		} 
	} 

JSP:


// ...
				<label for="select1">Módulo:</label>
				<html:select property="moduloAuditoria" styleId="moduloAuditoria" onchange="recuperaFuncionalidades(this.options[this.selectedIndex].value);">   
      				<html:options name="listMdlAuditoria" collection="listMdlAuditoria" property="identificador" labelProperty="nome" />   
				</html:select>  
				
				<label for="select1">Funcionalidade:</label>
				<html:select property="funcionalidadeModulo" styleId="funcionalidadeModulo" onchange="recuperaAcoes(this.options[this.selectedIndex].value);">   
      				<html:options name="listFuncionalidadeModulo" collection="listFuncionalidadeModulo" property="identificador" labelProperty="nome"/>   
				</html:select>  

// ...

É produzida a seguinte saída nos Alerts:
Envia o Pedido
estado:1
estado:2
estado:3
estado:4
Entrou processXMLFunc
achou: 0
else

Achou que não estou sabendo tratar a resposta. Alguem me ajuda ?!!!?

Po to quase desistindo desse fórum, ninguem me ajuda !! Pode ser dúvida simples ou difícil…

Cara sinceramente não sei resolver seu problema, mas porque vc não tenta usar JSON no lugar de XML, com ele é só dar um “eval” e os dados estão na mão, não precisa ficar parseando XML

Porque não posso usar qualquer ferramenta no meu trabalho…