我的项目有MVC架构,最近我遇到了一个奇怪的问题。每当我尝试用PHP打印一些输出来响应Ajax请求时,我输出前输入8个字符。我注意到它只是在我想要回声的时候放置这些字符,但我不知道当它们不在我尝试输出的字符串中时这些额外的输入是怎么来的。我检查了所有文件编码,以确保它们不是问题。我甚至将响应留空以检查是否有某些脚本先前打印了某些内容但是没有,但输出是空的,没有任何字符。
有没有提示?
这是我的js:
$.ajax({
url: _baseRoot + '/admin/request',
type: 'post',
data: "req=" + req + args,
success: function(data)
{
var result = data.split(",");
var m_type = "";
switch(result[0])
{
case "error": m_type = "red"; break;
case "warning": m_type = "yellow"; break;
case "success": m_type = "blue"; break;
}
showMessage(m_type, result[1]);
}
});
答案 0 :(得分:1)
在没有看到后端的情况下无法确定它,但正如大多数php项目所做的那样,这些可能来自各种包含的文件,这些文件并不意味着输出任何内容但只有?>
和换行符他们的结局。 php解释器只是将所有内容传递给不在<?php ?>
标记内的输出。
如果你不想从php文件中输出任何内容,你可以删除关闭?>
并且解释器只是将文件结束检测为脚本结束,并确保在?>
之后没有意外的空白进入输出。