2011-09-25 93 views
0

我有这个奇怪的问题。我正在对PHP页面进行AJAX调用。在出错的情况下,我将字符串“错误”返回成功:function(msg)即msg将具有值“error”。但由于某种原因,它发回“错误”,但在它之前有一个换行符。当我检查if (msg=="error")时,这种情况就会失败。我必须把ob_clean()清除输出缓冲区。然后它返回“错误”,没有换行符。我查了一下,但是我的PHP函数在“错误”之前没有输出任何内容。可能是输出缓冲区不是空的问题?PHP输出缓冲区不是空的?

+0

为什么不把你的代码作为例子?可能是您希望得到条件响应之前的简单输出。 – Jakub

+2

除了下面的答案,或许您应该考虑从PHP返回JSON? jQuery的支持的话(当然),和PHP将让您在使用[json_encode(http://php.net/json_encode)发送任何内容的JSON。 –

回答

2

这是因为一些你的PHP文件<?php之前或之后?>

由于PhpMyCoder propsed有一个空行 - 你也可以不把?>在文件的结尾都没有。 Php允许这样做。

+1

您可能要包括它可能会有所帮助,在一个PHP文件,以便后缀多余的字符将被忽略的结束不到位结束标记。 –

+0

非常感谢您的观点。我将浏览我的代码并查看可能存在的问题。 – Blueboye

+0

@Blueboye此外,如果文件被保存为与BOM UTF8,PHP将输出几字节(BOM)的实际输出之前 –