Cakephp';新加坡元本->;autorender=false不';无法按预期显示整个字符串

Cakephp';新加坡元本->;autorender=false不';无法按预期显示整个字符串,php,view,controller,cakephp-2.0,ovh,Php,View,Controller,Cakephp 2.0,Ovh,出于ajax的目的,我尝试在没有任何视图的情况下从Cakephp(2.8.5)控制器呈现字符串。为了实现这一点,我通常编写代码,然后在返回之前使用$this->render=false,效果很好 我在OVH(一家法国互联网服务提供商)上上传了该网站,但出现了一些问题,呈现的字符串没有正常工作。在达到一定大小之前,它不会按预期显示 为了演示该问题,我在线准备了一个动态页面(您可以按任意数字更改15,低于15将生成该问题): 代码非常简单: PagesController.php: class P

出于ajax的目的,我尝试在没有任何视图的情况下从Cakephp(2.8.5)控制器呈现字符串。为了实现这一点,我通常编写代码,然后在
返回
之前使用
$this->render=false
,效果很好

我在OVH(一家法国互联网服务提供商)上上传了该网站,但出现了一些问题,呈现的字符串没有正常工作。在达到一定大小之前,它不会按预期显示

为了演示该问题,我在线准备了一个动态页面(您可以按任意数字更改15,低于15将生成该问题):

代码非常简单:

PagesController.php:

class PagesController扩展了AppController{
公共功能测试($nb=1){
$str=”“;
$char=“o”;
$upper=真;
对于($i=0;$i<$nb;$i++){
$str.=$upper?strtoupper($char):strtolower($char);
$upper=$upper?false:true;
}
$this->autoRender=false;
返回$str;
}
}
通过
die
更改最后一个
return
将显示完整的字符串,但我不喜欢控制器中的
die
,我觉得这不是应该做的

这段代码在我的计算机(Windows/uWamp)上脱机工作,我不明白出了什么问题。我怀疑来自OVH的东西,但不能确定,也不知道去哪里找。以下是此主机的phpinfo:

你能帮我弄清楚发生了什么事吗?多谢各位

编辑:

终于找到了问题的原因。Cakephp2在每个响应中发送一个名为
Content Length
的HTTP头。虽然传递的大小是准确的(对于代码中要求的14个字符,14个传递到标题),但呈现的字符串被剥离。如果我在CakePhp库(/lib/Cake/Network/CakeResponse.php)中禁用此头,则渲染字符串是固定的

在我的本地pc上,这个头不会被发送(不知道为什么),在OVH上,使用相同的测试,但在CakePhp 3上,这个头也不会被发送


所以我禁用了它,lib代码和问题就消失了,不过如果有人能解释一下发生了什么,如果我做了什么错误,请禁用它。我不太熟悉HTTP头…

我不知道确切原因,但在使用之后

$this->autoRender = false;
你不可能得到确切的实际结果1.我也遇到过那种情况。 在我的情况下,我移除了autoRender,工作得很好。
如果不是强制性的,请尝试删除该行。

我不知道确切原因,但在使用后

$this->autoRender = false;
你不可能得到确切的实际结果1.我也遇到过那种情况。 在我的情况下,我移除了autoRender,工作得很好。 如果不是强制性的,请尝试删除该行