Estoy tratando de hacer una petición AJAX a un script de PHP para un simple cierre de sesión.
El PHP solo hace lo siguiente:

<?php
session_start();
unset($_SESSION['autorizzato']);
$arr=array('result'=>"logout effettuato con successo");
$ris=json_encode($arr);
echo $ris;
?>

Mientras que el AJAX se ve algo como esto:

$.ajax({
        type: 'POST',
        url: 'logout.php',
        async: false
       }).success(function(response){
       if (response['result']=="logout effettuato con successo")
            {
           change();
            }
            else alert("Errore nel logout");
        });
});

Problema es que resonse[‘resultado’] parece que unset.
Lo curioso es que si puedo agregar a la petición AJAX en una cadena de datos (como este:

$.ajax({
        type: 'POST',
        url: 'logout.php',
        async: false,
        dataType: 'json',
        data: sendstr
       }).success(function(response){
       if (response['result']=="logout effettuato con successo")
            {
           change();
            }
            else alert("Errore nel logout");
        });
});

donde sendstr es un simple string JSON objeto.
Alguien sabe por qué?
Gracias de antemano 🙂

  • Usted tiene dataType:’json’, que es la forma de decirle a jQuery que usted está esperando JSON del servidor.
  • Compruebe su respuesta del servidor en la ficha red, en la verificación de la consola, si es que puede ser analizada por JSON.parse()
InformationsquelleAutor Stefano Kira | 2013-11-24

2 Comentarios

  1. 1

    su éxito la función debe hacer como

     success(function(response){
        var returnsult=JSON.parse(response); 
               if (returnsult.result=="logout effettuato con successo")
                    {
                   change();
                    }
                    else alert("Errore nel logout");
                });
  2. 1

    Tampoco vayas de esta manera:

    $.ajax({
        type: 'POST',
        url: 'logout.php',
        async: false
       }).success(function(response){
       response=JSON.parse(response);//convert JSON string to JS object
       if (response['result']=="logout effettuato con successo")
            {
           change();
            }
            else alert("Errore nel logout");
        });
    });

    O

      $.ajax({
        type: 'POST',
        url: 'logout.php',
        async: false,
        dataType: 'json' /* Tell jQuery you are expecting JSON */
       }).success(function(response){
       if (response['result']=="logout effettuato con successo")
            {
           change();
            }
            else alert("Errore nel logout");
        });
       });

Dejar respuesta

Please enter your comment!
Please enter your name here