Использование функции jQuery .post в пользовательском шаблоне Wordpress - PullRequest
0 голосов
/ 28 апреля 2011

В настоящее время я создаю пользовательскую контактную форму на сайте WordPress, которую пытаюсь отправить через ajax с помощью jQuery, однако, когда я выполняю функцию $ .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>

Публикация никогда не завершается успешно, и форма отправляет "нормальный" способкаждый раз.

Я пробовал много комбинаций в части URL $ .post, включая / contact /, / contact, contact, / contact /, даже полный URL сайта, но безуспешно.Кто-нибудь имел эту проблему раньше?Или я что-то явно не так делаю?Мое единственное предположение - это что-то, связанное с моей /% postname% / permalink структурой, за исключением того, что я ничего не понимаю!

Любые идеи / мысли приветствуются

Спасибо, Энди

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

Это в документации по 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);
                    }
                });
            });
        });

0 голосов
/ 04 мая 2011

Я наконец понял, что происходит. В основном сообщение ajax выполнялось асинхронно, поэтому до получения ответа скрипт продолжил обработку

Добавление async: false к вызову $ .ajax решило проблему

Спасибо за помощь

...