WordPressカスタムテンプレートフォームでjQuery .Post関数を使用する
質問
現在、jqueryでAjaxを介して送信しようとしているWordPressサイトでカスタム連絡フォームをホイップしていますが、$ .POST関数を実行すると、FireBugは入力できますが、コンソールで404エラーを報告しています。私のアドレスバーにURLが入り、ページを正しく表示します。私はクロスドメインを投稿していません。
これが私のコードの例です。無関係なコードが削除されています。
<form action="" method="post" onsubmit="return submitContactForm()" class="contactform">
<!-- inputs etc here -->
</form>
<script type="text/javascript">
function submitContactForm() {
// Omitted error checking here, return false on error
$.post('/contact'/, $('.contactform').serialize(), function(data) {
alert(data);
return false;
});
return true;
}
</script>
投稿は決して成功しておらず、フォームは毎回「通常の」方法を提出します。
$ .POSTを含む$ .POSTのURL部分で多くの組み合わせを試しました。誰かが以前にこの問題を抱えていましたか?それとも私は露骨に間違っていることをしていますか?私の唯一の推測は、私が無知なもの以外の /%postname% / permalink構造と関係があることです!
どんなアイデア/考えも感謝しています
ありがとう、アンディ
解決 2
私はついに何が起こっているのかを理解しました。基本的にAjax PostはAsynchrounaseで実行されていたため、応答が受信される前にスクリプトが継続的に処理されます
asyncの追加:$ .ajaxコールへのfalseは問題を解決しました
助けてくれてありがとう
他のヒント
これはjqueryのドキュメントにあります:
これは速記のajax関数であり、次のものと同等です。
$.ajax({
type: 'POST',
url: url,
data: data,
success: success
dataType: dataType
});
これを試して:
$(function()
{
$("button#send").click(function() {
$.ajax({
type: "POST",
url: "post.php",
data: $("#form").serialize(),
success: function(msg){
$("#msg_ok").html(msg);
$("#form").reset();
//alert(msg);
}
});
});
});
所属していません StackOverflow