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);
}
});
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