Использование функции jQuery .post в форме пользовательского шаблона WordPress
Вопрос
В настоящее время я поднимаю пользовательскую контактную форму на сайте 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% / постоянной структурой, кроме того, что я невежественен!
Любые идеи/мысли ценится
Спасибо, Энди
Решение 2
Я наконец понял, что происходит. По сути, пост Ajax проводился с асинхруческим, поэтому до получения ответа сценарий продолжает обработка
Добавление Async: false в $ .ajax call решил проблему
Спасибо за помощь
Другие советы
Это в документации 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);
}
});
});
});