2012-03-29 3 views
0

ich Ajax verwenden MySQL-Abfrage und echojson_encode Ergebnis zu laufen, so dass ich ein JSON-Objekt bekommen: {cols: [XXXX], rows: [XXXX]}:Wie die Richtigkeit eines Ajax überprüfen zurück JSON

$.ajax({ 
    url: phpUrl, 
    data: command, 
    dataType: 'json', 
    async: true, 
    success: function(jsonData) { 
     //XXX 
    } 

Das Objekt JSON sein sollte.

Manchmal gibt es Fehler msg von MySQL-Abfrage, so dass das zurückgegebene JSON-Objekt nicht gültig ist. Wie kann ich feststellen, ob das zurückgegebene JSON-Objekt gültig ist oder nicht?

bearbeiten

In http://api.jquery.com/jQuery.ajax/, heißt es „die JSON-Daten in einer strengen Weise analysiert wird, jede fehlerhafte JSON abgelehnt und ein Parse-Fehler wird geworfen“. Wie behandelt man den Parse-Fehler?

Antwort

1

So etwas sollte funktionieren:

$.ajax({ 
    url: phpUrl, 
    data: command, 
    dataType: 'json', 
    async: true, 
    success: function(jsonData) { 
     //XXX 
    }, 
    error:function(xhr,err){ 
     if (err=='parsererror') alert('invalid json'); 
    } 
); 
1

Wenn MySQL einen Fehler wirft, gibt nur eine Art von JSON, die es erklärt, wie:

// do mysql query 
if (mysql_errno()) { 
    echo json_encode(array(
    'error' => true, 
    'errorno' => mysql_errno(), 
    'message' => mysql_error() 
)); 
} else { 
    //echo original json 
} 

dann Ihre Ajax-Funktion sieht nur für die ‚Fehler‘ Schlüssel, und wenn es vorhanden ist und Sie versucht, habe einen Fehler zu berichten.

Verwandte Themen