Как установить опцию beforesend в методах AJAX WordPress
Как установить опцию beforesend
в AJAX WordPress? Я хочу отображать индикатор загрузки.
Вот мой код:
function showmyvideos() {
var datas="data";
var data = {
action: 'my_vids',
link: datas
};
ajaxurl= "http://localhost/wordpress/wp-admin/admin-ajax.php";
jQuery.post(ajaxurl, data,function(response) {
});
}
У вас есть два варианта:
- Используйте
jQuery.ajax()
вместоjQuery.post()
- Используйте
jQuery.ajaxSetup()
для глобального изменения поведенияbeforeSend
.
Ссылка: https://stackoverflow.com/questions/2257975/using-beforesend-and-complete-with-post

Для потомков.
Вы всё ещё можете использовать $.ajax()
без необходимости применять $.ajaxSeteup()
. Всё, что вам нужно указать — это type
и убедиться, что он установлен в значение POST
.
$.ajax({
url: localized_script.ajax_url, /* URL админ-ajax из локализованного скрипта */
type: 'POST', /* Важно */
data: data_object, /* Объект данных, включающий 'action' и все POST-переменные */
beforeSend: function() {
alert('Перед отправкой');
},
success : function(response) {
alert(response); /* Ответ от ajax-функции */
},
complete: function() {
alert('Завершено');
}
});
Как видите, вы можете задавать разные функции/события для beforeSend
, success
и complete
.

Допустим, я использую $.post, у меня есть поле - action: [название "add_action('wp_ajax_.." и т.д. Куда его писать при использовании $.ajax ?

Вы установите его в "data_object". То есть непосредственно перед вызовом $.ajax
вы определите data_object
. Например: data_object = { 'action': 'my_action', 'whatever': 1234 };
.

Или в самом ajax-запросе установите data:
как data: { 'action': 'my_action', 'whatever': 1234 },

ОК, работает.
По какой-то причине я получаю ошибку
POST http://54.149.xx.xx/wp_admin/admin_ajax.php 404 (Not Found)
в консоли.
Есть идеи почему?

Вам нужно передать URL admin_ajax.php
в скрипт через локализацию. Можете попробовать использовать url: ajaxurl
(вместо url: localized_script.ajax_url
), если эта переменная доступна как глобальная JS-переменная на странице, где вы подключаете свой скрипт. Какое значение вы используете для url:
?

Вообще-то я нашел свою проблему... это не wp_admin, а wp-admin. Спасибо большое, чувак! :D
