WordPress 中的 Ajax 调用:输出问题故障排除
您的 ajax 调用始终返回 0 作为输出,这让您对原因感到困惑。要解决此问题,请考虑以下措施:
WordPress 中的全局 ajaxurl 变量:
WordPress 在后端定义了全局 ajaxurl 变量,以方便 AJAX 调用。但是,该变量在前端中不可用。
在前端定义ajaxurl:
要在前端使用AJAX调用,您需要手动定义ajaxurl变量。一种有效的方法是通过 wp_localize_script.
使用 wp_localize_script:
假设您的 AJAX 调用驻留在 my-ajax-script.js 中,请按如下方式使用 wp_localize_script:
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' );
这会在你的 JS 文件中创建一个 my_ajax_object 对象,其中包含 ajax_url。
在 Javascript 中使用 my_ajax_object:
本地化脚本后,使用JS 文件中的 my_ajax_object 对象:
jQuery.ajax({
type: "post",
dataType: "json",
url: my_ajax_object.ajax_url,
data: formData,
success: function(msg){
console.log(msg);
}
});
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3