webentwicklung-frage-antwort-db.com.de

wie kann man dieses ajax-Aufruf auf console.log anwenden?

Ich habe die folgende Funktion in jQuery-Code:

       btnLogin.on('click', function(e,errorMessage){
       console.log('my message' + errorMessage);
       e.preventDefault();

        return $.ajax({
            type: 'POST',
            url: 'loginCheck',
             data: $(formLogin).serialize(),
            dataType: 'json'  

        }).promise();
        console.log('my message' + errorMessage);

   });

WAS ICH VERSUCHE ZU TUN: Ich versuche, die Fehlermeldung zu "console.log". Ich bekomme undefined, wenn die console.log-Zeile über der Ajax-Funktion liegt und nichts, wenn die console.log-Zeile darunter steht.

Kann mir jemand sagen, wie ich den Wert der errorMessage in dieser oder einer anderen neuen Funktion anzeigen kann?

Jeder Link zur Verwendung von Ajax zur Überprüfung des PHP-Anmeldeformulars wird sehr geschätzt

Grüße, Zoran

17
Zoran

Warum behandeln Sie den Fehler nicht innerhalb des Anrufs?

d.h. 

$.ajax({
    type: 'POST',
    url: 'loginCheck',
    data: $(formLogin).serialize(),
    dataType: 'json',
    error: function(req, err){ console.log('my message' + err); }
});
11
Qiau

Sie könnten so etwas versuchen (kopiert aus den jQuery-Ajax-Beispielen )

var request = $.ajax({
  url: "script.php",
  type: "POST",
  data: {id : menuId},
  dataType: "html"
});

request.done(function(msg) {
  console.log( msg );
});

request.fail(function(jqXHR, textStatus) {
  console.log( "Request failed: " + textStatus );
});

Das Problem mit Ihrem ursprünglichen Code ist, dass das Fehlerargument, das Sie in Ihre on-Funktion übergeben, nicht von irgendwoher kommt. JQuery on gibt kein zweites Argument zurück, und selbst wenn dies der Fall wäre, würde es sich auf das Klickereignis und nicht auf den Ajax-Aufruf beziehen.

4
Nick

versuche so etwas:

$.ajax({
            type: 'POST',
            url: 'loginCheck',
            data: $(formLogin).serialize(),
            dataType: 'json',
            success: function (textStatus, status) {
                    console.log(textStatus);
                    console.log(status);
                   },
            error: function(xhr, textStatus, error) {
                    console.log(xhr.responseText);
                    console.log(xhr.statusText);
                    console.log(textStatus);
                    console.log(error);

                  }
});
1
Gamul Mijo
$.ajax({
    type: 'POST',
    url: 'loginCheck',
    data: $(formLogin).serialize(),    
    success: function(result){
                console.log('my message' + result);
             }
});
1
nsm

Ajax Call Error Handler wird ausgelöst, wenn der Aufruf selbst fehlschlägt.

Sie versuchen wahrscheinlich, den Fehler vom Server zu erhalten, falls Anmeldeinformationen nicht durchlaufen werden. In diesem Fall müssen Sie das Serverantwort-Json-Objekt überprüfen und die entsprechende Meldung anzeigen.

e.preventDefault();
$.ajax(
{
    type: 'POST',
    url: requestURI,
    data: $(formLogin).serialize(),
    dataType: 'json',
    success: function(result){
        if(result.hasError == true)
        {
            if(result.error_code == 'AUTH_FAILURE')
            {
                //wrong password
                console.log('Recieved authentication error');
                $('#login_errors_auth').fadeIn();
            }
            else
            {
                //generic error here
                $('#login_errors_unknown').fadeIn();
            }
        }
    }
});

Hier ist "Ergebnis" das json-Objekt, das vom Server zurückgegeben wurde und die folgende Struktur haben könnte:

$return = array(
        'hasError' => !$validPassword,
        'error_code' => 'AUTH_FAILURE'
);
die(jsonEncode($return));
1
Rohit

Wenn Sie Ihre URL überprüfen möchten. Ich nehme an, Sie verwenden Chrome. Sie können zur Chrome-Konsole wechseln und die URL wird unter "XHR fertig geladen:"

0
Jeffery