WordPressカスタムテンプレートフォームでjQuery .Post関数を使用する

StackOverflow https://stackoverflow.com/questions/5822082

  •  26-10-2019
  •  | 
  •  

質問

現在、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);
                    }
                });
            });
        });

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top