Как установить опцию 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 ?
Kar19
Вы установите его в "data_object". То есть непосредственно перед вызовом $.ajax вы определите data_object. Например: data_object = { 'action': 'my_action', 'whatever': 1234 };.
josh
Или в самом ajax-запросе установите data: как data: { 'action': 'my_action', 'whatever': 1234 },
josh
ОК, работает.
По какой-то причине я получаю ошибку
POST http://54.149.xx.xx/wp_admin/admin_ajax.php 404 (Not Found) в консоли.
Есть идеи почему?
Kar19
Вам нужно передать URL admin_ajax.php в скрипт через локализацию. Можете попробовать использовать url: ajaxurl (вместо url: localized_script.ajax_url), если эта переменная доступна как глобальная JS-переменная на странице, где вы подключаете свой скрипт. Какое значение вы используете для url:?
josh
Вообще-то я нашел свою проблему... это не wp_admin, а wp-admin. Спасибо большое, чувак! :D
Kar19