大约两周后,我仍在与这个问题作斗争,没有解决的迹象。
PHP使用$.ajax或$.post返回的任何数据总是在返回的数据上添加两个空格。我已经修剪了在PHP中响应的数据,以确认这不是服务器或我的脚本的问题。
例如
echo '{"id": "'.$myId.'"}';
成为:
' {"id": "'.$myId.'"}'
在检查器中查看返回的数据时。这给我的js脚本带来了问题,因为当没有错误时,它们不希望返回任何内容。返回双倍空间,当实际上没有错误时会导致错误,从而阻止其他事件的启动。
我使用的是Jquery 1.8.3。
有人知道是什么导致了这个极其奇怪和令人讨厌的问题吗?
我正在使用NetBeans
我记得这是在我将应用程序移动到新服务器后才开始发生的,但我不知道这会对它产生什么影响。
这可能会有所帮助,
我认为您的脚本中有一个空白(可能来自包含的文件,但不确定)。在将数据发送到浏览器之前,您可以通过清除输出缓冲区来克服这一问题。下面的代码将演示这个想法。
<?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;
}
?>
您可能在包含的php文件的末尾有空格(为了防止这种情况,请跳过结束?>
标记)。
此外,您应该检查<?php
前面是否没有任何内容,并在UTF-8文件中禁用BOM。
从文件返回的数据可能有空格,或者有html标记。删除所有标签、行、空格,并在末尾删除?>
如果您从test.php返回数据,文件应该如下所示
<?php
$myId = '1';
echo '{"id": "'.$myId.'"}';