私はw3schools公式サイトに表示されているように簡単な機能を作っています。私はAJAXリクエストの関数を実行しようとしています。AJAXリクエストは初めて動作しませんが、それ以降は動作します
コードが最初に失敗した後にのみ実行されることを除いて、すべてうまくいくと思います。私はあなたがちょうど私のウェブサイトに初めて来て、あなたが最初に提出しようとすると、それはページをリフレッシュし、何も起こらないと言うことを言いましょう。
私の知る限り、要求が実際に行われたかどうかを見つけるために、各行にalert
の機能を使用してデバッグしようとしました。私はreadyState
がコードが(すべてのブラウザ、異なるコンピュータで)実行された最初の1から4にジャンプするが、次回はreadyState 1,2,3および4をレンダリングして動作し、提出することがわかった。
私はクッキーの周りに何か考えましたか?しかし、私はまだそれの原因は何か不思議です。みんな、助けてください。
(headタグ内)のJavascript機能コード
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コード形式/入力
<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>
私だけPURE、RAW JAVASCRIPTソリューション、ないのjQueryをお願いします。
よろしくお願い致します。シンプルなので、今働いています。私は私のjsコードを見直して何時間も失ったとは思えません。 – joaogeraldes
最初の「失敗した」送信の後になぜ機能するのか分かりますか? – joaogeraldes
理由はわかりませんが、毎回更新する必要があります。私はそれが動作することがわかります唯一の理由は、あなたのサーバーが結果をキャッシュし、同じ要求を見ているので、それはより速い応答を持っていますが、それはまだ爽やかです。あなたのページは最初のクリックの後もまだリフレッシュされていますか? –