带有 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
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脚本