Olá Pessoal!
Estou com um problema quando vou receber a resposta do servidor local.
Tenho um arquivo login.php que faz uma consulta no banco e retorna o resultado em formato json, juntamente com seu 'status' que pode ser "s" ou "n".
Eu pego esse retorno em um arquivo javascript(app.js) usando $.ajax. A requisição até é concluída com sucesso, entrando no .done, porém, quando preciso checar o 'status' dentro de um if, e fazer a ação, ela me retorna como undefined!
Chequei no console do chrome usando console.log, e nele mostra o valor certo de 'status' , porém na hora de passar no if não dá certo.
Podem me dar uma ajuda?
Segue o código: Login.php
<?php
header('Access-Control-Allow-Origin: *');
require("config.php");
$usuario = strip_tags($_POST['usuario']);
$senha = strip_tags($_POST['senha']);
$sql = $pdo->prepare("SELECT * FROM login WHERE usuario = :usuario AND senha = :senha");
$sql->bindValue(":usuario",$usuario,PDO::PARAM_STR);
$sql->bindValue(":senha",$senha,PDO::PARAM_STR);
$sql->execute();
$ln = $sql->fetchAll();
$n = $sql->rowCount();
if ($sql) {
if ($n>){
$retorno['status'] = "s";
$retorno['dados'] = $ln;
echo (json_encode($retorno));
}else{
$retorno['status'] = "n";
echo (json_encode($retorno));
}
}
?>
app.js
$(function () {
$('form[name=form-login]').submit( function(){
$.ajax({
type: 'POST',
url: 'http://localhost/arquivos/login.php',
datatype:'json',
data: $(this).serialize()
}).done(function(data){
console.log(data);
if (data.status == "s"){
alert('OK');
}
else if (data.status == "n"){
alert('Não OK');
}
else {
alert(data.status);
}
})
.fail(function(data){
alert('Erro na requisição!');
});
return false;
});
});