Как установить опцию beforesend в методах AJAX WordPress

23 мар. 2012 г., 00:45:03
Просмотры: 3.22K
Голосов: 1

Как установить опцию 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) {

    });

}
1
Комментарии

Это неправильный способ реализации ajax в WordPress. Правильный подход описан здесь: 5 советов по использованию Ajax в WP

random_user_name random_user_name
23 мар. 2012 г. 01:46:46
Все ответы на вопрос 2
0

У вас есть два варианта:

  1. Используйте jQuery.ajax() вместо jQuery.post()
  2. Используйте jQuery.ajaxSetup() для глобального изменения поведения beforeSend.

Ссылка: https://stackoverflow.com/questions/2257975/using-beforesend-and-complete-with-post

23 мар. 2012 г. 01:18:25
7

Для потомков.

Вы всё ещё можете использовать $.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.

9 окт. 2014 г. 02:47:35
Комментарии

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

Kar19 Kar19
26 февр. 2015 г. 15:38:11

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

josh josh
26 февр. 2015 г. 17:16:29

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

josh josh
26 февр. 2015 г. 17:17:36

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

Kar19 Kar19
26 февр. 2015 г. 17:20:20

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

josh josh
26 февр. 2015 г. 23:12:38

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

Kar19 Kar19
27 февр. 2015 г. 11:02:25

Отлично. Я пропустил это в вашем ответе. Рад, что у вас всё заработало!

josh josh
27 февр. 2015 г. 14:57:35
Показать остальные 2 комментариев