html 删除 AJAX 响应中的空白

oyjwcjzk  于 2022-11-20  发布在  其他
关注(0)|答案(2)|浏览(140)

我有一个php脚本,它返回0.28。然后使用 AJAX 将其提取到HTML中,并插入到span中。问题是,它插入了5个空格和一个换行符。jQuery将其视为一个更改,并在没有更改时用新值更新现有span。空格似乎不是来自php。我尝试过:

  • 用trim()和ltrim()来去掉php中的空格
  • 删除php退出标记
  • 空白折叠:discard;在css中并使用!important标记(未读取此标记,且其上有铬黄警告)
  • 使用jquery调整响应
  • 使用html注解来削减空间

转储php变量:

string(4) "0.28"

这是我的浏览器返回它的方式

<span id="response1" style="display: inline;">*5spaceshere*    
   0.28</span>

这是我的剧本

$(function () {
    function update() {
        $.ajax({
            type: "GET",
            url: "balancefetch.php",
            dataType: "html",
            success: function (response) {
                var trimmedResponse = $.trim(response)
                if (trimmedResponse != $("#response1").html()) {
                    $("#response1").fadeOut(200, function () {
                        $("#response1").html(response);
                        $("#response1").fadeIn();
                    });
                } else {}
            }

        });
    }
    setInterval(update, 5000);
    update();
});

还有我的html

<div id="balance-div"><!--
--><p class="balance">Balance<span id="response1">Loading...</span></p><!--
--></div>

php语言

$balance = ltrim($balance);
echo $balance;

$balance保持0.26

gfttwv5a

gfttwv5a1#

因此,经过测试和通过几种方法找到问题所在,找到了问题的根源。
为什么不使用trim或RegEx之类的技术来删除空格的主要原因是,因为这将解决当前的问题,但不能解决源代码,所以这将是一个糟糕的解决方案,所以找到源代码很重要。
源代码问题在配置文件中,配置文件中有一些空格,将其包含在通过 AJAX 加载的脚本中后,空格也被包含在内。

解决方案:删除配置文件中的空格和/或仅删除?> PHP结束标记。

有关进一步的调试步骤,请查看问题的注解部分。

ndasle7k

ndasle7k2#

使用ob_clean()清除具有不需要的换行符的缓冲区

相关问题