Freitag, April 10, 2020

Eine variable nach ajax getan

Ich habe diesen code für einige Anfrage zu meinem server:

function myAjaxCheck(token) {
        $.ajax({
            type: 'POST',
            url: 'auth.php',
            data: {
                token: token,
            },
            dataType: 'json',
            success: function (data) {
                if (data.auth == 'OK') {
                    alert ('ok');
                    }
                } else {
                    alert('Error: ' + data.auth);
                }
            }
        }).done(function (data) {
            return data;
        });
    }

So, ich muss übergeben Sie die zurückgegebenen Daten in eine variable wie:

Var MyVariable = myAjaxCheck(token);
console.log(MyVariable);

in der Konsole:

undefined

Wo ist das problem, soll-Daten werden zurückgegeben, wenn Sie fertig sind, ist es aber nicht.

  • Kleinbuchstaben „Var“?
  • sorry, schnell Bearbeiten.
InformationsquelleAutor greenbandit | 2011-06-05

3 Kommentare

  1. 8

    Standardmäßig eine ajax() request asynchron ab, so dass der Aufruf ajax() wird in der Regel zurück, bevor die Anforderung beendet wird. Nutzen Sie eine callback-Funktion statt.

    function myAjaxCheck(token, callback) {
            $.ajax({
                type: 'POST',
                url: 'auth.php',
                data: {
                    token: token,
                },
                dataType: 'json',
                success: function (data) {
                    if (data.auth == 'OK') {
                        alert ('ok');
                        }
                    } else {
                        alert('Error: ' + data.auth);
                    }
    
                    callback(data);
                }
            });
        }
    
    var myVariable; 
     myAajxCheck(token, function(returnedData){ //anonymous callback function
        myVariable = returnedData;
        console.log(myVariable);
     });

    Wenn Sie unbedingt müssen, Sie könnte verwenden async: false innerhalb der Aufruf von ajax().

  2. 0

    Weil Sie erwarten, dass Sie einen Wert sofort zurückzugeben. Sie sind mit asynchron-XHR, so wird die Funktion return (undefined in diesem Fall) vor dem XHR eine chance hat, zu beenden und wieder seinen Wert.

Kostenlose Online-Tests