You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress 8 Ajax请求返回多余</div>标签,JSON解析失败求助

WordPress Ajax请求解析错误(parsererror)排查与解决

你的Ajax请求返回的响应文本前出现了多余的</div>标签,导致JSON解析失败(parsererror),以下是具体排查和解决方法:

直接修复方法:清空输出缓冲区

在回调函数最开头添加ob_clean();,清除所有之前意外输出的内容,确保只有JSON响应被返回:

function my_callback(){
  ob_clean(); // 清除缓冲区中已有的多余输出
  ob_start();
  include __DIR__ . '/my_php_file.php';
  $html = ob_get_clean();

  wp_send_json_success(['html' => $html]);
}

深层原因排查

1. PHP文件多余输出

检查所有相关PHP文件(插件主文件、主题functions.php、包含的模板文件):

  • 文件开头<?php标签前不能有空格、换行或其他字符
  • 文件结尾可以删除?>标签,避免标签后的换行被输出
  • 排查是否有不小心遗留的echo、print或var_dump语句

2. 其他插件/主题的全局输出

有些插件或主题会在init、admin_init等全局钩子中输出内容(比如调试信息、布局标签),这些内容会被混入Ajax响应。可以:

  • 暂时禁用所有其他插件,测试请求是否正常
  • 切换到WordPress默认主题(如Twenty Twenty-Four),排查主题是否存在问题

3. 钩子优先级冲突

确认没有其他代码使用了相同的wp_ajax_add_program_button钩子,或者更高优先级的钩子提前输出了内容。可以尝试给你的钩子设置更高优先级:

add_action('wp_ajax_add_program_button', [$this, 'my_callback'], 1); // 优先级1,确保最先执行

内容的提问来源于stack exchange,提问作者Laura Fontaine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 08:08:11