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

AJAX请求返回数据前置制表符是否正常及如何去除的咨询

问题解答

现象是否正常

这种情况不属于正常现象,本质是后端响应时额外输出了前置制表符,并非AJAX请求本身的默认行为。

产生原因

绝大多数场景下是PHP文件存在多余输出导致:

  • 业务代码所在的PHP文件、或其引入的其他PHP文件,在<?php起始标签前存在制表符、空格、换行等空白字符,PHP解析时会直接将标签外的内容输出到响应体
  • 部分PHP文件在?>结束标签后存在多余空白字符,也会被额外输出

修复方案

根源修复(推荐)

优先从后端侧解决问题,避免前端额外处理:

  1. 检查所有相关PHP文件,确保<?php前无任何前置字符,同时可以删除文件末尾的?>标签(PHP支持省略末尾结束标签,可彻底避免后续多余字符输出)
  2. 在输出响应内容前清空输出缓冲区,修改后的PHP代码如下:
function search_rhymes_get_rhyme_content() {
    ob_clean(); // 清空之前意外输出的缓冲区内容
    echo 'Test';
    die();
}

前端临时处理

如果暂时无法定位后端问题,可在前端对响应数据做清洗,去除前置制表符/空白字符,修改后的AJAX回调代码如下:

$.ajax( {
    url: rhymes_ajax_obj.ajaxurl,
    data: {
        'action': 'search_rhymes_get_rhyme_content'
    },
    success: function( data ) {
        // 正则匹配所有前置空白字符(含制表符、空格、换行)并删除
        const cleanedData = data.replace(/^\s+/, '');
        // 若仅需删除前置制表符,可替换为 data.replace(/^\t+/, '')
        console.log( 'Test:' + cleanedData );  
    },
    error: function( error ) {
        console.log( error );
    }
} );

内容的提问来源于stack exchange,提问作者Francis Bégin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:06:03