首页 > 后端开发 > php教程 > 为什么我的 WordPress Ajax 调用返回'0”?

为什么我的 WordPress Ajax 调用返回'0”?

Mary-Kate Olsen
发布: 2024-11-03 00:49:29
原创
691 人浏览过

Why Does My WordPress Ajax Call Return

WordPress 中的 Ajax 调用故障排除:为什么输出为“0”

在 WordPress 中,进行 Ajax 调用可能很简单,但有时会出现问题可以出现。一个常见的问题是 Ajax 调用返回“0”作为输出,尽管传递了不同的值。

此问题是由于 WordPress 前端缺少 ajaxurl 变量引起的。虽然 WordPress 在后端定义了此变量,但它不会在执行 Ajax 调用的前端中这样做。

解决方案:本地化您的 JavaScript 文件

到解决这个问题,您需要在前端代码中定义 ajaxurl 变量。这可以使用 wp_localize_script 函数来完成,该函数将数据与本地化脚本关联起来。

具体操作方法如下:

  1. 将您的 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>
    登录后复制
  2. 本地化脚本:

    <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

  1. 在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板