"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué mi llamada AJAX de WordPress devuelve 0?

¿Por qué mi llamada AJAX de WordPress devuelve 0?

Publicado el 2024-11-08
Navegar:109

Why is my WordPress AJAX call returning 0?

Llamadas Ajax en WordPress: solución de problemas de salida

Su llamada ajax siempre devuelve 0 como salida, dejándolo perplejo acerca de la causa. Para rectificar este problema, considere lo siguiente:

Variable global ajaxurl en WordPress:

WordPress define la variable global ajaxurl en el backend, lo que facilita las llamadas AJAX. Sin embargo, esta variable no está disponible en el frontend.

Defina ajaxurl en el frontend:

Para utilizar llamadas AJAX en el frontend, debe definir manualmente la variable ajaxurl . Un método efectivo es a través de wp_localize_script.

Usando wp_localize_script:

Suponiendo que sus llamadas AJAX residen en my-ajax-script.js, use wp_localize_script de la siguiente manera:

function my_enqueue() {
    wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') );
    wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue' );

Esto crea un objeto my_ajax_object en su archivo JS, que contiene ajax_url.

Utilice my_ajax_object en Javascript:

Después de localizar su script, utilice el objeto my_ajax_object en su archivo JS:

jQuery.ajax({
    type: "post",
    dataType: "json",
    url: my_ajax_object.ajax_url,
    data: formData,
    success: function(msg){
        console.log(msg);
    }
});
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3