Ich arbeite an einer Chrome Erweiterung. Vorerst wird nur überprüft, ob der Benutzer existiert.AJAX erkennen Fehler, aber keine Fehler
Es gibt ein Formular im Plugin Popup. Benutzer füllen dieses Formular mit seinem Benutzernamen und Passwort und es wird an den Server gesendet.
Benutzer wird in Sicht gefunden, alles sieht korrekt aus, aber AJAX gibt Fehler aus irgendeinem Grund zurück.
Dies ist eine Ansicht:
@csrf_exempt
def api_authentication(request):
if request.method == 'POST':
login = request.POST.get('login')
password = request.POST.get('password')
if login and password:
username = login
if '@' in login:
username = mainapp_models.User.objects.get(email=login).username
if not username:
return JsonResponse({'success':0})
user = authenticate(username=username,password=password)
print user # IT's ok, user is found
if user:
return JsonResponse({'username':user.username,
'success':1})
return JsonResponse({'success':0})
Dies ist AJAX:
$(document).ready(function() {
$('#login-button-id').click(function() {
var login = $('#input-email-id').val();
var password = $('#input-password-id').val();
$.ajax({
url: 'http://127.0.0.1:8000/api/authenticate',
type: 'POST',
data: {
'login': login,
'password': password
},
success: function() {
alert('success');
},
error: function() {
alert('failure');
}
})
})
});
Und JsonResponse
sieht aus wie: {'username': u'milano', 'success': 1}
Wenn ich das Formular ausfüllen und die Daten senden, user
ist gefunden, aber 'Fehler' wird alarmiert. Weißt du, was ist das Problem?
EDIT:
Alerts für Andy Antwort:
Seit console.log
nicht funktioniert hat, ich es Warnungen geändert:
error: function (jqXHR, textStatus, errorThrown) {
alert("JQuery failed: " + textStatus + " with error thrown: " + errorThrown);
alert(jqXHR.responseText);
}
Warnung:
EDIT2
fand schließlich eine Konsolenprotokolle:
Zum einen ist es ein Tippfehler in Ihr gepouterter Code,'ccess' anstelle von 'success'. Dann, wenn Fehler callabck ausgelöst wird, welcher Fehler erhalten Sie ?! –
Ich habe versucht, Fehler mit dem Code aus der Antwort unten zu überprüfen. Es protokolliert nichts, also änderte ich Log in Alert. Das Ergebnis steht am Ende der Frage. –
Ich habe das Konsolenprotokoll gefunden. Ich musste auf plugin - inspect plugin klicken und alle Warnungen loswerden, da sie inspect window entfernen. Ich habe das Konsolenprotokoll am Ende der Frage hinzugefügt. –