Como usar POST no XMLHttpRequest

3 respostas
Y

Gostaria de utilizar POST em vez de GET, no XMLHttpREquest, mas, como eu seto os atributos para post?
No get sa anexo na url, mas como fazer em JAVASCRIPT?

Segue o codigo:

var req;

function insere(){

if(window.XMLHttpRequest){

req = new XMLHttpRequest();

}else if(window.ActiveXObject){

req = new ActiveXObject.(Microsoft.XHTTP);

}

//parametros

nom = document.getElementById(nome).value;

em = document.getElementById(email).value;
//como fazer por post?
url = "unijales.java?nome="+nom+"&email="+em;
req.open("Get",url,true);
req.onreadystatechange=callback;
req.send(null);

}

function callback(){

if(req.readyState==4){

if(req.status==200){

alert(todo processo ok);

}

}

}

3 Respostas

E

Não sei se entendi bem a sua dúvida , de qualquer forma aqui vai.

url = "unijales.java";
dados = "nome="+nom+"&email="+em; 
req.setRequestHeader('Content-Type' , 'apllication/x-www-form-urlencoded');
req.open("POST",url,true);
req.send(dados);
Y
Ehb:
Não sei se entendi bem a sua dúvida , de qualquer forma aqui vai.
url = "unijales.java";
dados = "nome="+nom+"&email="+em; 
req.setRequestHeader('Content-Type' , 'apllication/x-www-form-urlencoded');
req.open("POST",url,true);
req.send(dados);
Então funcionou, valew. MAs tem um problema, qndo passo parametros grande ele nao chega a servlet destino. qndo passo parametros menores, dois ou tres caracteres para cada parametro vai. pq será? vou colocar o codigo aqui:
var req;
function insere(){
	if(window.XMLHttpRequest){
		req = new XMLHttpRequest();
		alert("criada o XMLHttpREquest");
	}else if(window.ActiveXObject){
				req = new ActiveXObject.("Microsoft.XHTTP");
		}
	//parametros
	nom = document.getElementById("nome").value;
	alert(nom);
	em = document.getElementById("email").value;	
	sen = document.getElementById("senha").value;
	cid = document.getElementById("cidade").value;	
	uf = document.getElementById("estado").value;	
	
	url = "insereUsuario.java";
	dados = "para=control.command.InsereUsuario&nome="+nom+"&email="+em;
	dados=dados+"&senha="+sen+"&cidade="+cid+"&estado="+uf;
	alert(dados);
	req.open("POST",url,true);
	req.setRequestHeader('Content-Type' , 'multipart/form-data');  
	req.send(dados);
	req.onreadystatechange=callback;
}

function callback(){
	if(req.readyState==4){
		alert("readyState==4 ok");
		if(req.status==200){
			alert("todo processo ok");
		}
	}

}
a servlet
public class FrontControl extends HttpServlet{
	
	
	public void service(HttpServletRequest req, HttpServletResponse res)
	throws ServletException,IOException{
		
		try {
			System.out.println(req.getParameter("email"));
			Class refle = (Class) Class.forName(req.getParameter("para").toString());
			Command command = (Command) refle.newInstance();
			System.out.println("Chamando o objeto command");
			command.execute(req, res);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			throw new ServletException(e);
		}
		
	}

}

a classe

public class InsereUsuario implements Command{

	
	public void execute(HttpServletRequest req, HttpServletResponse res)
			throws Exception {
		
		Usuario usuario = new Usuario();
		usuario.setNome(req.getParameter("nome"));
		usuario.setEmail(req.getParameter("email"));
		usuario.setSenha(req.getParameter("senha"));
		usuario.setCidade(req.getParameter("cidade"));
		usuario.setEstado(req.getParameter("estado"));
		Session sessionh = HibernateUtil.getSession();
		UsuarioDao usudao = new UsuarioDao(sessionh);
		Transaction tran= sessionh.beginTransaction();
		usudao.save(usuario);
		tran.commit();
		System.out.println("usuario salvo\n"+usuario.getNome());
		RequestDispatcher rd = req.getRequestDispatcher("sucesso.jsp");
				rd.forward(req, res);
	}

}
Y

Tipo nem chega a chamar a servlet
Os parametros q eu falo, é por exemplo passara nome="ab"
senha=“ab”, pequenos entende, qndo passo grande como nome=“sei la o q”, não vai.

Se me ajudar ai valew

Criado 8 de setembro de 2008
Ultima resposta 9 de set. de 2008
Respostas 3
Participantes 2