Variable in Javascript Funktion ausgeben
jbaben
- browser
- javascript
Hallo,
wie kann ich die Variable "xhr" bzw. "xhr.send()" in der folgenden Javascript-Funktion "updateOutput()" in der Konsole ausgeben ?
<script>
function updateOutput(element) {
var xhr = new XMLHttpRequest();
if(element.checked){
xhr.open("GET", "esp-outputs-action.php?action=output_update&id="+element.id+"&state=1", true);
console.log( "Button checked " );
}
else {
xhr.open("GET", "esp-outputs-action.php?action=output_update&id="+element.id+"&state=0", true);
console.log( "Button unchecked " );
}
console.log( "xhr.send: " + ? );
xhr.send();
}
MfG
Juergen B.
Tach!
wie kann ich die Variable "xhr" bzw. "xhr.send()" in der folgenden Javascript-Funktion "updateOutput()" in der Konsole ausgeben ?
xhr ist eine Variable, xhr.send() ist aber ein Funktionsaufruf. Was xhr beinhaltet, kannst du dir zwar anzeigen lassen, aber von xhr.send() hingegen nur den Rückgabewert. Letzteres ist aber sinnlos, weil der Rückgabewert dieser Funktion undefiniert ist.
console.log( "xhr.send: " + ? ); xhr.send();
Man kann console.log() einfach mehrere mit Komma separierte Werte übergeben, die dann alle einzeln ausgegeben werden. Wenn du die Werte stattdessen mit + verknüpfst, wird dabei eine Typkonvertierung stattfinden, die vor allem bei komplexen Typen (wie Objekten), nicht mehr für Debuggingzwecke sinnvoll ist.
dedlfix.
Hallo jbaben,
mit dedlfix' "geht, aber bringt nix" stellt sich nun die Frage: Was willst Du denn eigentlich erreichen?
Die Antwort auf deinen AJAX-Request bekommst Du, indem Du auf dem xhr Objekt einen Eventhandler für das load Event registrierst. Guck in unser Wiki
Rolf
Hallo,
ich möchte wissen was mit "xhr.send()" gesendet wird.
Mit
console.log( "xhr.send: " + xhr.responseText );
wird nichts auf der Konsole ausgegeben.
MfG
Juergen B.
Hi,
ich möchte wissen was mit "xhr.send()" gesendet wird. Mit
console.log( "xhr.send: " + xhr.responseText );
wird nichts auf der Konsole ausgegeben.
natürlich nicht - in responseText steht ja auch (wie der Name schon vermuten lässt) nicht das, was du senden willst, sondern die Antwort des Servers. Und auch das natürlich erst einige Zeit später.
Live long and pros healthy,
Martin
Hallo Juergen,
ich möchte wissen was mit "xhr.send()" gesendet wird.
das solltest du doch im Netzwerktab der Entwicklertools sehen können.
Viele Grüße
Robert
Nur als Ergänzung: fetch() statt XMLHttpRequest.
function updateOutput(element) {
// HTTP-Anfrage senden, element.checked-Prüfung direkt in URL-Bau
fetch('esp-outputs-action.php?action=output_update&id=" + encodeURIComponent(element.id) + "&state=' + (element.checked ? "1" : "0"))
.then(function (response) {
// wird ausgeführt, sobald irgendeine Antwort vom Server eintrudelt
if (response.ok) {
// kein Fehler, Serverantwort als Text holen
return response.text();
}
// HTTP- und Netzwerkfehler ignoriert dieses Beispiel geflissentlich
})
.then(function (text) {
// wird ausgeführt, sobald komplette Serverantwort als Text zur Verfügung steht
console.log(text)
});
}