Ajax - Enviando dados via POST
Wednesday, June 28th, 2006Todos sabemos que enviar dados via GET não é muito seguro. Estava tentando fazer um login via Ajax, mas com GET nem pensar, então comecei a pesquisar, e ai saiu o resultado, claro que o código abaixo não foi o que implementei em meu sistema, mas ficou de facil compreensão.
function ajax() {
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;
}
/* A função acima é a que valida se navegador tem suporte AJAX e essa função abaixo é a que submete os dados */
function envia() {
ajax();
/* Pego o texto do campo usuário */
usuario = document.form.usuario.value;
/* Os parâmetros que serão enviados, aqui no caso é o usuário */
var texto = “usuario=” + usuario;
var url = “valida.php”;
xmlhttp.open(“POST”,url,true);
xmlhttp.setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded; charset=UTF-8″);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4){
/* Lê o texto da página que foi submetida */
/* Obs.: nessa página eu retorno um javascript */
var texto = xmlhttp.responseText;
/* Desfaz o urlencode */
texto = texto.replace(/\+/g,” “);
texto = unescape(texto);
/* O js que de retorno é executado no eval() */
eval(texto);
document.form.usuario.value = ”;
}
}
/* Envia os dados contidos na variavel texto como se fosse uma parametros de um GET */
xmlhttp.send(texto);
}
Bom só para dar uma forcinha, criei um código PHP para entenderem melhor:
É claro que uma validação não se deve fazer dessa forma, mas como disse antes para entenderem melhor: (valida.php)
if($_POST['usuario']) {
if($_POST['usuario'] == ‘andrey’) {
echo rawurldecode(“alert(’Ok! usuário está correto’);”);
}
else {
echo rawurldecode(“alert(’Ok! usuário está incorreto’);”);
}
}
?>
Vai Brasil!!!!!!!!!!!!!!!!!