使用exit而不是echo更改输出mime类型

时间:2014-12-08 17:58:47

标签: php codeigniter

我们使用CodeIgniter作为服务器端代码,并在返回200以外的HTTP代码时注意到一些奇怪的内容。

对于HTTP代码200,我们使用的代码

echo $output;

并允许附加更多输出。

对于HTTP代码403(例如),我们使用的代码是:

exit($output);

我们的服务器通常会返回JSON响应,因此mime类型显式设置为application/json

在状态代码为200时,(在客户端上)可以正常工作,但是当使用错误(和exit)版本时,mime类型将重置为text/html

在这种情况下,有没有人知道为什么CodeIgiter可能会重置mime类型?

1 个答案:

答案 0 :(得分:4)

我的猜测是代码点火器使用输出缓冲来捕获所有被回应的内容,并设置mimetype 在你编写完成后发送输出完整的反应机构。

在exit()的情况下,你完全终止了一切,所以如果代码点火器在控制器逻辑之后做了这些东西的任何事情,它将永远不会有机会在其中设置正确的mime类型。第一名。

一般情况下,除非您有非常具体的理由,否则应避免拨打exit()