Cómo configurar la opción beforesend en métodos AJAX de WordPress

23 mar 2012, 00:45:03
Vistas: 3.22K
Votos: 1

¿Cómo configuro la opción beforesend en AJAX de WordPress? Quiero mostrar una opción de carga.

Este es mi código:

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
Comentarios

Esta es la forma incorrecta de hacer ajax en WordPress. La forma correcta está documentada aquí: 5 Consejos para Usar Ajax en WP

random_user_name random_user_name
23 mar 2012 01:46:46
Todas las respuestas a la pregunta 2
0

Tienes dos opciones:

  1. Usar jQuery.ajax() en lugar de jQuery.post()
  2. Usar jQuery.ajaxSetup() para cambiar el comportamiento de beforeSend globalmente.

Referencia: https://stackoverflow.com/questions/2257975/using-beforesend-and-complete-with-post

23 mar 2012 01:18:25
7

Para la posteridad.

Todavía puedes usar $.ajax() sin tener que usar $.ajaxSeteup(). Todo lo que necesitas especificar es el type y asegurarte de que esté configurado como POST.

$.ajax({

    url: localized_script.ajax_url,  /* URL de AJAX del administrador desde el script localizado */
    type: 'POST',  /* Importante */
    data: data_object,  /* Objeto de datos incluyendo 'action' y todas las variables post */
    beforeSend: function() {
        alert('Antes de enviar');
    },
    success : function(response) {
        alert(response);  /* Respuesta de la función AJAX */
    },
    complete: function() {
        alert('Completado');
    }
});

Como puedes ver, puedes configurar diferentes funciones/eventos para beforeSend, success y complete.

9 oct 2014 02:47:35
Comentarios

Digamos que estoy usando $.post, tengo el campo - action: [nombre del "add_action('wp_ajax_.." etc]. ¿Dónde lo escribo cuando uso $.ajax?

Kar19 Kar19
26 feb 2015 15:38:11

Lo configurarás en el "data_object". Justo antes de la llamada $.ajax; definirás data_object. Algo como, data_object = { 'action': 'my_action', 'whatever': 1234 };.

josh josh
26 feb 2015 17:16:29

O, en la llamada ajax; establece data: como data: { 'action': 'my_action', 'whatever': 1234 },

josh josh
26 feb 2015 17:17:36

OK, funciona. Por alguna razón obtengo un error POST http://54.149.xx.xx/wp_admin/admin_ajax.php 404 (Not Found) en mi consola. ¿Alguna pista de por qué?

Kar19 Kar19
26 feb 2015 17:20:20

Tienes que pasar la URL de admin_ajax.php al script; usando localización. Puedes intentar usar url: ajaxurl (en lugar de url: localized_script.ajax_url) si está disponible como una variable global js en la página donde estás incluyendo tu script. ¿Qué valor estás usando para url:?

josh josh
26 feb 2015 23:12:38

en realidad encontré mi problema.. no es wp_admin, es wp-admin. ¡muchas gracias, tío! :D

Kar19 Kar19
27 feb 2015 11:02:25

¡Increíble! Se me pasó eso en tu respuesta. ¡Me alegro de que lo hayas conseguido!

josh josh
27 feb 2015 14:57:35
Mostrar los 2 comentarios restantes