0

大约 2 周后,我仍在努力解决这个问题,但没有任何解决方案的迹象。

PHP 使用 $.ajax 或 $.post 返回的任何数据总是在返回的数据上添加两个空格。我已经修剪了在 PHP 中回显的数据,以确认这不是服务器或我的脚本的问题。

例如

echo '{"id": "'.$myId.'"}';

变成:

'  {"id": "'.$myId.'"}' 

在检查器中查看返回的数据时。这会导致我的 js 脚本出现问题,因为它们不希望在没有错误的情况下返回任何内容。返回双倍空格,当实际上没有空格时会导致错误,从而阻止其他事件触发。

我正在使用 Jquery 1.8.3。

有谁知道是什么导致了这个极其奇怪和烦人的问题?


我正在使用 NetBeans


我记得这只是在我将我的应用程序移动到新服务器后才开始发生,但我不知道这会如何以这种方式影响它。

4

3 回答 3

0

您有可能在包含的 php 文件的末尾有空格(为了防止它,请跳过结束?>标记)。

此外,您应该检查 UTF-8 文件中是否没有任何内容<?php并禁用 BOM。

于 2013-08-01T06:13:29.777 回答
0

从文件返回的数据会有空格,或者你会有 html 标签。删除所有标签、行、空格,最后删除?>

如果您从 test.php 返回数据,该文件应如下所示

<?php
$myId = '1';
echo '{"id": "'.$myId.'"}';
于 2013-08-01T06:17:31.900 回答
0

这可能会有所帮助,

我认为您的脚本中有一个空格(可能来自包含的文件,但不确定)。您可以通过在将数据发送到浏览器之前清除输出缓冲区来克服这个问题。下面的代码将演示这个想法。

<?php
ob_start();
echo ' '; // Possible whitespace (may be from included files)

----------
----------

if (YOUR_CHECK_FOR_AJAX_REQUEST) {
    ob_end_clean();
    $myId = 1;
    echo '{"id": "'.$myId.'"}';
    exit;
}
?>
于 2013-08-01T06:50:40.117 回答