Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Raul Almeida

responseText funciona, responseXML não

Recommended Posts

Fala galera.

Estou com um problema

O responseText funciona porém o responseXML não...

 

Estou usando o Ajax.Request do prototype.

Ajuda please...

var url = 'http://xuxubeleza.asp';var parametros = 'pint_IdLinha=' + idLinha;var myAjax = new Ajax.Request	(url,{															method: 'post', 				parameters: parametros, 				onComplete: mostraRetorno												}			);					function mostraRetorno(xmlRetorno){		var node = xmlRetorno.responseXML;		var nErro = node.selectNodes("//xml/Erro");				alert(xmlRetorno.responseText)//Funciona		alert(xmlRetorno.responseXML)//Não funciona	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

o seu ASP tah definido como XML com todas TAGS?

 

ponha os dois

 

xml:

<?xml version="1.0" encoding="utf-8" ?>

asp:

<% response.ContentType="text/xml" %>

qualquer coisa verifique o erro pelo console de erros do firefox :P

 

falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

silverfox

 

 

 

Eu já enfrentei este problema, fui em busca e acabei descobrindo, para retornar os dados do xml usando o prototype, voce precisa criar uma outra funcao que estrai os dados do xml, neste caso a funcao ira conter um for no qual ira varrer os dados.

 

 

Eu postei um codigo que eu desenvolvi contendo esta descoberta. Segue abaixo ou para acessar http://forum.imasters.com.br/index.php?showtopic=246758

 

 

 

function mostraResposta(req){  // Recebe a requisão XMLvar obj = req.responseXML;//Pega o id do campovar idOpcao = $('listCidades');var opcoes = $('opcoes');//pega a tag cidadevar dataArray   = obj.getElementsByTagName("cidade");	//total de elementos contidos na tag cidade	if(dataArray.length > 0) {		//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	   =  pegaValor(item.getElementsByTagName("id_cidade")[0]);			var descricao	   =  pegaValor(item.getElementsByTagName("nome_cidade")[0]);						opcoes.innerHTML = "-- Selecione uma opção abaixo --";			// Cria campos			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;				idOpcao.options.add(novo, 1);			}	} else {		//caso o XML volte vazio, printa a mensagem abaixo		opcoes.innerHTML = "-- Selecione um estado --";		idOpcao.options.length = 1;	 }  }// ROTINA: Retorna os valoes do nofunction pegaValor(no){	if(no.childNodes.length>0){			return no.firstChild.nodeValue; //Tem filho	  } else {			try{				  return no.nodeValue			} catch (e) {			return "";		}	  }}

Compartilhar este post


Link para o post
Compartilhar em outros sites

ficou bom mas não curto muito funções assimprefiro criar minhas proprias aplicaçõestipo alem de menor eu entenderia melhor para poder fazer modificações futurasmas tah bom mesmo assim

Compartilhar este post


Link para o post
Compartilhar em outros sites

ficou bom mas não curto muito funções assimprefiro criar minhas proprias aplicaçõestipo alem de menor eu entenderia melhor para poder fazer modificações futurasmas tah bom mesmo assim

É verdade, realmente nós mesmos desnvolvendo nossas proprias aplicações seia melhor, pois assim entendemos as funcionalidades..... A respeito da aplicação eu ainda estou aprimorando, pois ainda estou começando a trabalhar com ajax. Espero que tenha lhe ajudado. Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No ASP funciona assim:

 

' Esse para Firefox

Response.ContentType = "Content-type:application/xml; charset=utf-8"

' Esse para IE

Response.AddHeader "Content-Type", "text/xml;charset=UTF-8"

 

pode colocar os dois na mesma página que funciona o responseXML

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.