exit()
或die()
结束Ajax处理功能,否则Ajax函数将接收所需且正确的输出,但随后是0
。 知道为什么会这样吗?
是要这样还是可以解决?
add_action('wp_ajax_get_homepage', 'get_homepage');
add_action('wp_ajax_nopriv_get_homepage', 'get_homepage');
function get_homepage(){
echo "get_homepage ->";
exit();
}
我已经在AJAX的“插件”中阅读了,但是为什么有必要这样做?
#1 楼
来自admin-ajax.php
的默认响应是die( '0' );
wp_die()或
exit()
或die()
,可以防止来自admin-ajax.php
的默认响应返回好。 这通常也意味着您的ajax调用已成功。
最终,要回答您的问题,它就是以这种方式工作的。返回内容后退出是您的正确选择。
评论
谢谢你的解释。那么我该使用die()还是在ajax内检查0以了解一切正常?
–拉德克
13年5月5日,1:12
回显内容/数据后,请使用die()或exit()。然后,在ajax方法的成功/完成回调函数中,您可以操纵数据并将其用于填充DOM。您还可以执行任何其他错误检查以验证数据完整性。您还可以在输出之前在PHP回调函数中进行错误检查。从本质上讲,返回响应后退出将确保您不会同时获得0。顺便说一句,仅仅因为您收到0响应并不意味着您的Ajax调用是100%成功的。但是,当您检查输出时很容易分辨。
–亚当
13-10-5在1:26
您应该使用2.0.4中添加的wp_die()
–验证码
18年4月28日在4:31
@thrillcode,除非您需要将wp_die的进程公开给其他可以挂接到该进程的插件或主题代码,然后使用die或exit即可。如果您打算以OSS或其他方式发布您的代码,而您的代码需要与他人一起玩,那么wp_die会更可取。
–亚当
18年4月29日在8:12
评论
即使您退出了wordpress,它(加0)也会发生吗?是的,即使我没有登录WordPress。