Cómo pasar parámetros de datos a un manejador de función de acción Ajax

12 feb 2014, 23:05:37
Vistas: 63.8K
Votos: 9

Tengo el siguiente código JavaScript para procesar una petición Ajax:

$('#someelement').click(function() {

        var cokeValue = 'coke';

        var data = {
            action: 'load_post',
            another_par: someVar
        };

        jQuery.post(ajax_object.ajax_url, data, function(response) {
            alert(response);
        });
  });

Y esta es mi función manejadora de Ajax (espero que mi terminología sea correcta):

add_action('wp_ajax_get_coke', 'get_coke_ajax');
function get_coke_ajax() {

   // necesito obtener another_par aquí !!!!!!!

   die();
}

Como pueden ver, la acción es load_post lo cual está bien, pero necesito pasar el parámetro another_par a mi función Ajax para poder asignar su valor a una variable y usarla para mis propósitos.

0
Todas las respuestas a la pregunta 1
1
15

Cuando usas jQuery.post(), los data se envían como argumentos regulares de $_POST.

Así que este JavaScript …

var data = {
    action: 'load_post',
    foo:    'bar'
};

… está disponible en tu función de callback mediante:

$action = $_POST['action'];
$foo    = $_POST['foo']; // bar

Y cuando usas jQuery.get(), los datos están en $_GET. También puedes usar $_REQUEST, que devuelve tanto datos GET como POST (y COOKIE). Pero siempre deberías solicitar el recurso específico para evitar inyecciones desde fuentes que no esperas, como una cookie.

12 feb 2014 23:32:50
Comentarios

Lo siento, mi WordPress escapa la entrada cuando se codifica en json. Se añaden algunas barras invertidas delante de los caracteres ".

https://wpartisan.me/tutorials/wordpress-auto-adds-slashes-post-get-request-cookie

Jakob Alexander Eichler Jakob Alexander Eichler
21 jul 2018 03:41:56