Ich übergebe eine Callback-Funktion wie unten, aber ich bin nicht in der Lage, diese Funktion aufzurufen, wenn onreadystatechange den Wert ändert, also request.onreadystatechange = func. Ich erhalte eine korrekte Antwort vom Server, wenn ich die Ajax-Anfrage aufruft, aber diese Methode wird nicht aufgerufen. Bitte beachten Sie, dass func als String übergeben, wenn ich getFromServer("http://localhost/ch02/checkName.php?username=sas","func")
Zuweisen einer Callback-Funktion zu einer Variablen
function createRequest() {
try {
request = new XMLHttpRequest();
}
catch (failed) {
request = null; }
finally {
return request;
}
}
function func(){
alert("ok");
}
function getFromServer(url,readystateCallback) {
request=createRequest();
if (request == null) {
alert("unable to create request");
} else {
request.open("GET", url, true);
var func= new Function (readystateCallback);
request.onreadystatechange = func;
request.send(null);
}
return request;
}
Ich will nicht Klammer hier mit readystateCallback verwenden. Es sollte nur ausgeführt werden, wenn die Anforderung ihren Status ändert. –
mein schlecht, das ist ein Fehler war, löschte den Kommentar ... Ich meinte: 'request.onreadstatechange = readystateCallback' – JordanHendrix
eine anonyme Funktion verwenden: ' request.onreadystatechange = function() {// hier etwas tun - Sie können hier einen Funktionsaufruf stellen. } ' Was Sie in Ihrem Beispiel tun, besteht darin, eine Zeichenfolge zu übergeben und dann den Rückruf einem Zeichenfolgewert zuzuweisen, anstatt einen tatsächlichen Funktionsaufruf zu tätigen. – Korgrue