Ir para conteúdo

POWERED BY:

Arquivado

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

andre_guitar7

ajax

Recommended Posts

Porque meu código javascript retorna o html sem acentos??

 

function getXMLHttp(){	var xmlhttp;	try{		xmlhttp = new XMLHttpRequest();	}catch(ee){		try{			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");		}catch(e){			try{				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");			}catch(E){				xmlhttp = false;			}		}	}	return xmlhttp;}function mudaPagina( link , idObjetoMuda ){	xmlhttp = new getXMLHttp();	document.getElementById("floatframeCarregando").style.display = "";	xmlhttp.open( "GET" , link , true );	document.getElementById("floatframeCarregando").style.display = "none";	xmlhttp.onreadystatechange = function() {	if ( xmlhttp.readyState == 4 ){			if( xmlhttp.status == 200 ){				//texto = unescape( xmlhttp.responseText.replace( /\+/g , " " ) ); //PHP				document.getElementById( idObjetoMuda ).innerHTML = xmlhttp.responseText;			}		}	}	xmlhttp.send(null);	}

Com PHP fica fácil adicionando

unescape( xmlhttp.responseText.replace( /\+/g , " " ) );

mas em .htm ou .asp, não funciona... alguém manja???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara..Eu coloquei um exemplo...Perceba que no meu exemplo o nome do Objeto é XML e no seu é xmlhttp, você mudou isso ?

Poisé, seu exemplo tava sem o parênteses, tava dando erro eu adicionei... ficou assim:
function getXMLHttp(){	var xmlhttp;	try{		xmlhttp = new XMLHttpRequest();	}catch(ee){		try{			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");		}catch(e){			try{				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");			}catch(E){				xmlhttp = false;			}		}	}	return xmlhttp;}function mudaPagina( link , idObjetoMuda ){	xmlhttp = new getXMLHttp();	document.getElementById("floatframeCarregando").style.display = "";	xmlhttp.open( "GET" , link , true );	document.getElementById("floatframeCarregando").style.display = "none";	xmlhttp.onreadystatechange = function() {	if ( xmlhttp.readyState == 4 ){			if( xmlhttp.status == 200 ){				//texto = unescape( xmlhttp.responseText.replace( /\+/g , " " ) ); //PHP				document.getElementById( idObjetoMuda ).innerHTML = xmlhttp.responseText;			}		}	}	xmlhttp.setRequestHeader( "Content-Type","text/html; charset=iso-8859-1" );	xmlhttp.send(null);	}
tá certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá meu amigo

 

A tecnologia do Ajax é realmente muito interessante.

 

porém, existe muito pouco conteúdo pra isso funcionando com ASP na web.

 

Eu virei a internet de ponta cabeça, quando pensei em iniciar nisso aí.. e não encontrei nada.

 

Veja um exemplo que eu fiz, quando comecei a brincar com ajax

http://www.dark0.truehost.com.br/ajax/

 

Esse esquema dos caracteres, é uma coisa um pouco chata de resolver.

Usando xmlhttp com asp, a gente resolve isso montando funções em asp que resolvem. Mas, com ajax, não tem como, hehe

 

Então, você resolve isso, usando o server.URLencode

 

ele, juntamente com o unescape do javascript, resolvem o problema na boa.

 

faça um teste aí.. aqui resolvi assim.

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dark, poderia postar algum minitutorial pra galera começar a se inteirar com AJAX?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá meu amigoA tecnologia do Ajax é realmente muito interessante.porém, existe muito pouco conteúdo pra isso funcionando com ASP na web.Eu virei a internet de ponta cabeça, quando pensei em iniciar nisso aí.. e não encontrei nada.Veja um exemplo que eu fiz, quando comecei a brincar com ajaxhttp://www.dark0.truehost.com.br/ajax/Esse esquema dos caracteres, é uma coisa um pouco chata de resolver.Usando xmlhttp com asp, a gente resolve isso montando funções em asp que resolvem. Mas, com ajax, não tem como, heheEntão, você resolve isso, usando o server.URLencodeele, juntamente com o unescape do javascript, resolvem o problema na boa.faça um teste aí.. aqui resolvi assim.Abraço

Poisé, meu problema realmente são os benditos acentos... cara, AJAX é muito 10... tem como você colocar um exemplo desse server.URLencode pra eu ver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salgado.Como eu havia dito, é simplesmente a utilização do XMLHTTP no client.Pra quem faz em ASP, para fazer em JS é fácil.

Mostra pra gente como você faria... aquela linha q você me pediu pra adicionar não funcionou... gente só falta isso, AJAX é muito manha...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara..Eu teria que fazer alguns testes, mas veja...Aquela linha que inclui, informa o "Character Set" que deve ser utilizado.Uma outra forma como o Dark disse é utilizar o UrlEnconde e o escape.Na página em que você usa para retornar as informações, ao invés de simplesmete utilizar "Response.Write", coloque:

Response.Write Server.HTMLEncode(ORs("Nome"))

Então, quando for mostrar as informações no client, antes de mostrar trate a informação com o escapeTipo assim

varRetorno = Escape(xmlhttp.ResponseText)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara..Eu teria que fazer alguns testes, mas veja...Aquela linha que inclui, informa o "Character Set" que deve ser utilizado.Uma outra forma como o Dark disse é utilizar o UrlEnconde e o escape.Na página em que você usa para retornar as informações, ao invés de simplesmete utilizar "Response.Write", coloque:

Response.Write Server.HTMLEncode(ORs("Nome"))

Então, quando for mostrar as informações no client, antes de mostrar trate a informação com o escapeTipo assim

varRetorno = Escape(xmlhttp.ResponseText)

 

Valew... to na faculdade mas assim que chegar em casa vou testar... :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

marcelo.. beleza?cara, eu tentei setar o Character Set por aqui, fiz varios testes, e não consegui fazer os acentos aparecerem.Mas, eu não testei montar um xml, usando os dados puxados remotamenteEntao, a solução mais pratica que encontrei, foi essa do urlencode.O htmlencode tb serviria para os acentos.. mas com ele as tags html nao sao mostradas, heheAbraçops:Salgado, eu pretendo montar alguma coisa nesse sentido, mas você sabe como é aquele cara chamado tempo..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sei que o tópico é ASP, mas vamos nos focar no javascript, ok?Seguinte... no xmlhttp.readyState temos os seguintes passos:

0 = uninitialized1 = loading2 = loaded3 = interactive4 = complete

O certo seria pegarmos o retorno de responseText no passo 4 mas tentem isso:
if ( xmlhttp.readyState == 3 ){			if( xmlhttp.status == 200 ){				document.getElementById("texto").value = xmlhttp.responseText;			}else{				alert( xmlhttp.statusText );			}		}	}
Alguém sabe me explicar porque quando pego o retorno no passo 3, ele me retorna com os acentos certos?Quem quizer testar:
<script language="JavaScript">function getXMLHttp(){	var xmlhttp;	try{		xmlhttp = new XMLHttpRequest();	}catch(ee){		try{			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");		}catch(e){			try{				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");			}catch(E){				xmlhttp = false;			}		}	}	return xmlhttp;}function mudaPagina( link ){	xmlhttp = new getXMLHttp();	xmlhttp.open( "GET" , link , true );	xmlhttp.onreadystatechange = function() {	for(i in xmlhttp) {		try {			val+="xmlhttp."+i+"="+xmlhttp[i]+"\n"		} catch(e) {}	}	if ( xmlhttp.readyState == 3 ){			if( xmlhttp.status == 200 ){				document.getElementById("texto").value = xmlhttp.responseText;				document.getElementById("objeto").value = val;			}else{				alert( xmlhttp.statusText );			}		}	}	xmlhttp.send( null ); }</script><input type="button" value="Exibir" onClick="mudaPagina( 'index.htm' );"> éééé <br><br>Código index.htm: <br><textarea id="texto" cols="100" rows="10"></textarea><br><br>Funções do XMLHttpRequest: <br><textarea id="objeto" cols="100" rows="40"></textarea><br>
É só salvar como index.htmTem dois textarea... um retorna o código do index.htm com os acentos "éééé", o textarea de baixo retorna o que foi feito até o xmlhttp.send( null )...

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.