WordPress 中的 Ajax 调用故障排除:为什么输出为“0”
在 WordPress 中,进行 Ajax 调用可能很简单,但有时会出现问题可以出现。一个常见的问题是 Ajax 调用返回“0”作为输出,尽管传递了不同的值。
此问题是由于 WordPress 前端缺少 ajaxurl 变量引起的。虽然 WordPress 在后端定义了此变量,但它不会在执行 Ajax 调用的前端中这样做。
解决方案:本地化您的 JavaScript 文件
到解决这个问题,您需要在前端代码中定义 ajaxurl 变量。这可以使用 wp_localize_script 函数来完成,该函数将数据与本地化脚本关联起来。
具体操作方法如下:
将您的 JavaScript 入队文件:
<code class="php">function my_enqueue() { wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') ); } add_action( 'wp_enqueue_scripts', 'my_enqueue' );</code>
本地化脚本:
<code class="php">wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );</code>
此代码将创建一个Ajax 脚本中名为 my_ajax_object 的全局对象,其中包含 ajaxurl
在 Ajax 调用中使用 ajaxurl 变量:
<code class="javascript">jQuery.ajax({ type: "post", dataType: "json", url: my_ajax_object.ajax_url, data: formData, success: function(msg){ console.log(msg); } });</code>
通过使用 my_ajax_object.ajax_url,您现在可以对正确的 WordPress 端点进行 Ajax 调用并收到预期的结果输出。
以上是为什么我的 WordPress Ajax 调用返回'0”?的详细内容。更多信息请关注PHP中文网其他相关文章!