带有 wordpress 的 Ajax 脚本在我的输出中添加了一个随机的“0”[重复]

Posted

技术标签:

【中文标题】带有 wordpress 的 Ajax 脚本在我的输出中添加了一个随机的“0”[重复]【英文标题】:Ajax script with wordpress is adding a random '0' in my output [duplicate] 【发布时间】:2021-11-21 06:08:24 【问题描述】:

我创建了一个 wordpress 插件,它使用 ajax 每 10 秒更新一个 div。

它似乎可以工作并且正在运行 AJAX GET 请求,并按应有的方式输出 test,但也向 div 输出添加了 0(response)

我无法弄清楚它为什么会这样做?有什么建议吗?

php


<?php

add_action( 'wp_enqueue_scripts', 'aj_enqueue_scripts' );
function aj_enqueue_scripts() 
    wp_enqueue_script( 'aj-demo', plugin_dir_url( __FILE__ ). 'aj-demo-ajax-code.js?v=2', array('jquery') );
    // The second parameter ('aj_ajax_url') will be used in the javascript code.
    wp_localize_script( 'aj-demo', 'aj_ajax_demo', array(
        'ajax_url' => admin_url( 'admin-ajax.php' ),
        'aj_demo_nonce' => wp_create_nonce('aj-demo-nonce') 
    ));


add_action( 'wp_ajax_nopriv_aj_ajax_demo_get_count', 'aj_ajax_demo_process' );
add_action( 'wp_ajax_aj_ajax_demo_get_count', 'aj_ajax_demo_process' );  // For 

function aj_ajax_demo_process() 
    echo "test";

?>

Jquery/JS

jQuery(document).ready( function()
    setInterval(function()
        jQuery.ajax(
            url : aj_ajax_demo.ajax_url, 
            type : 'get',
            data : 
                action : 'aj_ajax_demo_get_count', 
                nonce : aj_ajax_demo.aj_demo_nonce, 
            
            ,
            success : function( response ) 
                jQuery('.now_playing_info').html(response);  
            ,
            error : function( response ) 
                
            
        );
    , 10000);
);

【问题讨论】:

【参考方案1】:

尝试在函数末尾添加exit;

function aj_ajax_demo_process() 
  echo "test";
  exit; // add this line

【讨论】:

【参考方案2】:

WordPress 将继续调用所有已注册的 AJAX 回调,直到其中一个回调终止执行,最后一个回调终止并响应为 0。

所以只需在代码末尾使用wp_die()

function aj_ajax_demo_process() 
   echo "test";
   wp_die();

【讨论】:

以上是关于带有 wordpress 的 Ajax 脚本在我的输出中添加了一个随机的“0”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

qTranslate 和 AJAX 的 Wordpress 问题

为啥在 WordPress 的 ajax ServerInterval 升级中交换 video.js 样式?

在 Wordpress 中上传 Ajax 文件 - 无法传递 FormData

html“服务器错误”中的Wordpress Elementor脚本

在我的 wordpress 网站中,该网站已关闭,它只显示带有密码字段的空白页面

Wordpress 是不是在劫持我的 Ajax 表单帖子?