Markus1965
Neues Mitglied
Hallo in die Runde,
ich kämpfe seit Stunden mit einem XMLHttpRequest. Ich möchte ähnlich wie in jQuery (aber ohne den ganzen Balast) eine Funktion schreiben, die mir einen post-Befehl ausführt. Dazu habe ich die übliche XMLHttpRequest-Funktion verwendet. Anders als in allen Anleitungen zu finden, möchte ich aber die Antwort aus dem Request als Variable zurückbekommen.
Ich bekomme aber leider immer nur entweder ein "undefined" oder einen leeren String zurück. Selbst wenn ich die Variable schon ausserhalb der Funktion deklariere damit sie global gültig wird.
Hier mein Code:
Antwort-1 = wie erwartet aus der PHP-Datei
Antwort-2 = leer
id="infoText" = leer
Warum wird die Variable "answ" nicht per return answ; zurückgeliefert?
Vielen Dank im Voraus
Markus
ich kämpfe seit Stunden mit einem XMLHttpRequest. Ich möchte ähnlich wie in jQuery (aber ohne den ganzen Balast) eine Funktion schreiben, die mir einen post-Befehl ausführt. Dazu habe ich die übliche XMLHttpRequest-Funktion verwendet. Anders als in allen Anleitungen zu finden, möchte ich aber die Antwort aus dem Request als Variable zurückbekommen.
Ich bekomme aber leider immer nur entweder ein "undefined" oder einen leeren String zurück. Selbst wenn ich die Variable schon ausserhalb der Funktion deklariere damit sie global gültig wird.
Hier mein Code:
<div class="spaceL">
<button onclick="testButton()">Test laden</button>
<p id="infoText"> </p>
</div>
<script>
answ="";
function testButton(){
let antwort = post('funktion=test'); //post('funktion=test');
//alert(antwort);
document.getElementById('infoText').innerHTML = antwort;
}
function post(x){
var request = new XMLHttpRequest();
request.open("POST","../dispatcher.php");
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.addEventListener('load', function(event) {
if (request.status >= 200 && request.status < 300) {
console.log('Antwort-1: '+request.responseText);
answ = request.responseText;//'Test';
//document.getElementById('infoText').innerHTML = 'Antwort: '+answ;
return answ;
} else {
console.warn(request.statusText, request.responseText);
}
});
request.send(x);
console.log('Antwort-2: '+request.responseText);
return answ;
}
Antwort-1 = wie erwartet aus der PHP-Datei
Antwort-2 = leer
id="infoText" = leer
Warum wird die Variable "answ" nicht per return answ; zurückgeliefert?
Vielen Dank im Voraus
Markus