对这是可能的,而且你走在了正确的轨道上!:)
AJAX calls happen "behind the scenes" 无论您选择什么,在该过程中都不会生成屏幕输出echo
或print_r
- 这就是为什么您看不到返回给您的任何内容——相反,服务器响应由javascript捕获并在那里执行操作。
这为调试AJAX操作提供了两个基本选项:
1) You can use error_log()
in your AJAX actions to write the output to WP_DEBUG_LOG
file and check the results there:
function darn(){
error_log( print_r($_POST, 1) );
exit;
}
有关更多详细信息,请参阅
Codex: Debugging_in_WordPress - WP_DEBUG_LOGPro提示#1:启动终端控制台并使用tail -f debug.log
用于实时调试awesomness;)
Pro提示#2:使用tail -f debug.log | grep -v \'bad-plugin\'
从不使用的插件作者那里过滤掉过多的调试问题WP_DEBUG_LOG
;P
2) Use javascript\'s own console.log()
to check the response right in your browser:
从AJAX操作发送响应。。。
function darn(){
echo \'darn!\'
exit;
}
。。。并通过JS接收:
$.post(ajaxurl, data, function(response) {
// Response will be \'darn!\'
if( typeof(console) == \'object\' ) console.log( response );
});
专业提示3:您可以使用
wp_send_json() 用于生成JSON格式的响应或WP_Ajax_Response XML类。方便更复杂的响应和/或错误处理专业提示#4:如果有什么不清楚的地方,请在评论中告诉我:D
欢迎光临,祝您在WPSE上玩得愉快!