我有一个PHP端点,该端点在被调用时将返回一个json对象。但是,我遇到一种奇怪的情况,即仅在发送的数据大于或等于特定大小时才执行echo
行。
要返回的对象类似于{"ProjectsList": [...]}
。数组如下所示:
$outputArray = [
{...},
{...},
...
]}
它存储在标题中的部分(重要的是稍后进行解释)
header('ProjectsList: '.json_encode($outputArray));
从服务器返回它的部分:
echo '{"ProjectsList": '.json_encode($outputArray).'}'
http_response_code(204)
现在,当ProjectsList
对象的大小为3.72kb(我不是100%确定这是确切的最大值,但是我能够测试的大小)以下时,将不执行回显,并发送204
响应:
检查网络显示标头已设置了正确的对象,因此我们知道$outputArray
不为空:
但是,如果对象为4.25kb(这是我能够测试的对象-我不能100%确定确切的最小值)或更大,则将其正确发送,并发送200
响应被发送,因为未执行回显下面的行(按预期方式)。
注意:我只是在标题中设置数据,以确保数据确实存在,并且不是导致数据不被发送的原因。 -从标题中删除它会产生相同的结果。
为什么echo
行没有100%地执行?以及为什么它取决于数据大小?