Re:[AJUDA]Java + AJAX

Boa tarde pessoal, tô com o seguinte problema, to enviando os dados de um JSP para outro JSP usando AJAX, qdo envio via GET, ele funfa tranquilamente mas quando é usando POST ele nao vai. Segue o codigo:

(Index.jsp) JSP inicial, atraves dele passo os dados para o outro JSP.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Testes Ajax</title>

<link rel="stylesheet" href="estilo.css" media="all" />
<script type="text/javascript">

function mudarEstado(){
	var e = document.getElementById("nome");
	switch(ajax.readyState){
		case 1:
			//e.innerHTML = "carregando... <img src='ajax-loader.gif' />";
			break;
		case 4:
			e.innerHTML = ajax.responseText;
			break;
	}
}


function pegaNome(entrada){
	try{
		ajax = new XMLHttpRequest();
	}catch(e){
		ajax = new ActiveXObject("Microsoft.XMLHTTP");
	}

	ajax.onreadystatechange = mudarEstado;	
	var url = "GeraAjax.jsp?entrada="+entrada;

	ajax.open("POST", "GeraAjax.jsp", true);
	ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	ajax.setRequestHeader("Content-length", entrada.length);
	ajax.send(entrada);
}


</script>
</head>
<body>
	<form action="" name="form" id="form" method="post">
		<table>
			<tr>
				<td><input type="button" id="entrada" name="entrada" value="" onclick="pegaNome('HENRIQUE');" /></td>
				<td><input type="text" id="nome" name="nome" /></td>
			</tr>
		</table>
	</form>
</body>
</html>

(GeraAjax.jsp) pega os dados enviados por Index.jsp

<%
	String entrada = request.getParameter("entrada");
	System.out.println("PARAMETRO  PASSADO   " + entrada);
%>

Se eu passo o parametro via GET ele imprime HENRIQUE, mas se eu passo via POST ele mostra null. Nao sei como faço para mostrar na tela esse valor usando o metodo POST.

[]'s
Henrique.

Olá Henrique.

De uma olhada na spec do xmlhttprequest

http://www.w3.org/TR/XMLHttpRequest/

Para adiantar, você deve passar os parÂmetros no método send e não concatenando na url.

[quote=thiagomoraes]Olá Henrique.

De uma olhada na spec do xmlhttprequest

http://www.w3.org/TR/XMLHttpRequest/

Para adiantar, você deve passar os parÂmetros no método send e não concatenando na url.[/quote]

Thiago, realmente vc tá certo, mas eu nao estou passando nada concatenado na URL, se vc notar o meu metodo open(), ele tá como post e eu passo somente o nome do JSP que eu quero enviar os dados, a minha variavel url que foi criada nao está sendo usada em nenhum momento! ela está ali somente pq em outrora eu usei o metodo como GET para testar! :smiley:

Mas mesmo assim ainda nao sei oq tem de errado, vou dar uma sacada nesse link que vc me mandou!

[]'s
Henrique.

Realmente. A URL não é utilizada.

no seu método send(entrada) vc deve fazer como se fosse os parametros da URL

send(“entrada=”+entrada);