Ich mache eine einfache Funktion, wie es auf w3schools offiziellen Website angezeigt wird. Ich versuche eine Funktion einer AJAX-Anfrage auszuführen.AJAX Anfrage funktioniert nicht das erste Mal aber funktioniert danach
Ich denke, es funktioniert alles gut außer die Tatsache, dass der Code nur ausgeführt wird, nachdem es das erste Mal fehlschlägt. Ich meine, sagen Sie, dass Sie das erste Mal auf meiner Website waren und Sie versuchen, das erste Mal einzureichen, es aktualisiert nur die Seite und nichts passiert.
Soweit ich weiß habe ich versucht zu debuggen mit alert
Funktionen in jeder Zeile zu finden, wenn die Anfrage wirklich gemacht wurde. Ich fand, dass die readyState
springt von 1 bis 4 das allererste Mal der Code läuft (in jedem Browser, verschiedene Computer), aber das nächste Mal wird es ReadyState 1, 2, 3 und 4 und BANG rendern wird es funktionieren und senden.
Ich dachte über etwas um die Plätzchen nach? Aber ich frage mich immer noch, was die Ursache dafür ist. Bitte Jungs, helft mir dabei.
Javascript Funktionscode (innen head-Tag)
function sendForm() {
var criarRequest = new XMLHttpRequest();
criarRequest.onreadystatechange = function() {
if (criarRequest.readyState == 4 && criarRequest.status == 200) {
document.getElementById("contacts").innerHTML = criarRequest.responseText;
}
};
//var loading = document.getElementById("contacts").innerHTML = "A enviar...";
var inputEmail = document.getElementById("email").value;
var inputMensagem = document.getElementById("mensagem").value;
criarRequest.open("POST", "sendEmail.php", true);
criarRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
criarRequest.send("email="+inputEmail+"&mensagem="+inputEmail);
}
HTML-Code-Form/Eingänge
<form>
<input style="width:220px; height:39px" type="text" id="email" placeholder="Email" />
<br /> <br />
<textarea style="width:220px; height:100px" id="mensagem" placeholder="Mensagem"></textarea>
<br /> <br />
<button id="enviar" onclick="sendForm()">Enviar</button>
</form>
Bitte geben Sie mir nur PURE, RAW JAVASCRIPT Lösungen, keine jQuery.
Vielen Dank! So einfach funktioniert es jetzt. Ich kann nicht glauben, dass ich so viele Stunden damit verbracht habe, meinen js-Code zu überprüfen. – joaogeraldes
Wissen Sie, warum es nach dem ersten "fehlgeschlagenen" Senden funktioniert? – joaogeraldes
Nicht ganz sicher warum, aber es sollte jedes Mal auffrischen. Der einzige Grund, warum ich es sehen kann, ist, dass Ihr Server die Ergebnisse zwischenspeichert und die gleiche Anfrage sieht, so dass sie schneller reagiert, aber immer noch auffrischt. Wird Ihre Seite nach dem ersten Klick noch aktualisiert? –