Ir para conteúdo
Fórum Script Brasil
  • 0

Servidor responde com 'undefined'


Lioo

Pergunta

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; 
    });
    
   
});

 

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Acho estranho conseguires ver o resultado da propriedade correctamente na consola.

Acontece que, ao usares a função json_encode é criada uma string em formato JSON. Porém, ao fazeres a requisição AJAX, essa resposta vai ser interpretada como texto.

O que tens de fazer é, quando recebes a resposta do servidor, transformar a string num objecto JSON usando o método JSON.parse(data).

Exemplo.

Link para o comentário
Compartilhar em outros sites

  • 0

Oi, mudei de acordo como você falou nessa parte para ver se consigo alguma resposta no console:

ps: também mudei datatype:'json', para dataType:'json', com o T maiúsculo.

.done(function(data){
                //console.log(data);
                var retorno;
                retorno = JSON.parse(data);
                console.log("--------------------------");
                console.log(retorno);
                /*
                if (data.status == "s"){
                    alert('logou');
                }
                else if (data.status == "n"){
                    alert('Não logou');
                }
                else {
                    alert(data.status);
                }*/
            })
        .fail(function(data, textStatus, errorThrown){
                var retorno;
                retorno = JSON.parse(data);
                alert(retorno);    
            });

Porém agora o console não me mostra nenhum resultado,apenas esse erro:
abc.jpg

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...