Um servlet que retorna um XML, esse retorno tem em uma tag um texto, quando eu pego esse texto para carregar um textarea ele é cortado, o textarea não tem limitação de caracter, mesmo em um alert() o problema ocorre. Agora o curioso é que no responseText o texto juntamente com as outras tags do XML aparecem por completo, ou seja, tenho o XML completo no browser. Estou usando o seguinte código para pegar o texto do XML:
function initRequest(url) { if (window.XMLHttpRequest) { req = new XMLHttpRequest();} else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP");} req.open("GET", url, true); }}
Faça o seguinte troque isso
req.open("GET", url, true);
por isso
req.open("POST", url, true);
H
hlhaas
Então,
o problema está no retorno, e não no envio, mesmo assim eu substituí GET pelo POST, mas não resolveu tbem…
J
julianostr
Veja no console javascript do FF qual é a mensagem de erro e a linha.
J
julianostr
Vou te passar o fonte do servlet e do jsp que eu fiz aqui e que funciona no IE e no FF ok?
<scriptlanguage="JavaScript">vartXHR=0;functionXMLHTTPRequest(){if(window.XMLHttpRequest){a=newXMLHttpRequest();}//Objetonativo(FF/Safari/Opera7.6+)else{try{a=newActiveXObject("Msxml2.XMLHTTP");//activeX(IE5.5+/MSXML2+)}catch(e){try{a=newActiveXObject("Microsoft.XMLHTTP");//activeX(IE5+/MSXML1)}catch(e){/*Onavegadornãotemsuporte*/a=false;}}}returna;}functionTeste(){tXHR=XMLHTTPRequest();if(tXHR){tXHR.open("POST","<seu servlet>/Teste",true);tXHR.onreadystatechange=recebeResultado;tXHR.send(null);}}functionrecebeResultado(){if(!tXHR){returnfalse;}else{if(tXHR.readyState==4){if(tXHR.status==200){vartag=tXHR.responseXML.getElementsByTagName("atividade");alert("Valor da primeira tag teste: "+tag[0].getElementsByTagName("teste").item(0).firstChild.data);alert("Valor da segunda tag teste: "+tag[1].getElementsByTagName("teste").item(0).firstChild.data);alert("Valor da terceira tag teste: "+tag[2].getElementsByTagName("teste").item(0).firstChild.data);}else{alert('Erro! "'+tXHR.statusText+'" (erro '+tXHR.status+')');}}}}</script>
Pra você testar chame a função javascript Teste.
Tente executar esse exemplo no seu servlet e veja se alcança o mesmo resultado. Qualquer coisa dê um berro.