2016-05-03 2 views
1

Die unten ist der JavaScript-Code API aufrufen und ich möchte das Fehlerergebnis von der API präsentieren.API-Aufruf zurück Fehler Ergebnis in JSON-Format

var loginData = { 
    grant_type: 'password', 
    username: usr, 
    password: pwd 
}; 
$.ajax({ 
    type: "POST", 
    url: apiUrl, 
    data: loginData, 
    success: function (data) { ... }, 
    error: function (request, status, error) { 
     display(error message return from API) 
    } 
}).always(function() { 
    // ... 
}); 

Und die Antwort von API ist „400 Bad Request“ und der Inhalt wie unten

{ 
    "error": "invalid_grant", 
    "error_description": "The user name or password is incorrect." 
} 

Kann mir jemand helfen, diese Antwort von dem API zu erhalten und die „ERROR_DESCRIPTION“ Anzeige zu der Benutzer?

+0

Möchten Sie die Fehlermeldung für den Benutzer anzeigen - ist das alles, was Sie tun möchten? – WillardSolutions

+0

Ja. Das ist richtig. – Mirrh

Antwort

2

Wenn Sie nur die Fehlermeldung an den Benutzer angezeigt werden soll (wie ich Ihre Frage denken fragt), dann so etwas wie dies in den Handler:

function (xhr) { 
    res = JSON.parse(xhr.responseText); 
    $('#someDiv').html(res.error_description); 
}, 

Natürlich müssen Sie genau entscheiden, wo Sie diese Nachricht einfügen möchten, und schreiben Sie den HTML- und Selektor entsprechend um. Oder Sie können einfach alert() verwenden, um dies anzuzeigen - es liegt wirklich an Ihnen.

EDIT:

Da es sich um eine 400-Antwort, wird es an die Fehlerbehandlung gehen. In diesem Fall gibt es ein xhr-Objekt zurück und der JSON, den Sie sehen, sollte in xhr.responseText gespeichert werden. Siehe obenstehenden bearbeiteten Code.

+0

Die API wird 400 Bad Request Fehler zurückgeben. Daher wird der Ajax-Aufruf in die Fehlerfunktion fallen. – Mirrh

+0

Ja, das habe ich gerade bemerkt und bearbeitet. Setzen Sie dies für Ihren Fehlerhandler stattdessen – WillardSolutions

+0

Vielen Dank für Ihre Eingabe. aber es hat nicht funktioniert. – Mirrh

Verwandte Themen