我们使用CodeIgniter作为服务器端代码,并在返回200以外的HTTP代码时注意到一些奇怪的内容。
对于HTTP代码200,我们使用的代码
echo $output;
并允许附加更多输出。
对于HTTP代码403(例如),我们使用的代码是:
exit($output);
我们的服务器通常会返回JSON响应,因此mime类型显式设置为application/json
。
在状态代码为200时,(在客户端上)可以正常工作,但是当使用错误(和exit
)版本时,mime类型将重置为text/html
。
在这种情况下,有没有人知道为什么CodeIgiter可能会重置mime类型?
答案 0 :(得分:4)
我的猜测是代码点火器使用输出缓冲来捕获所有被回应的内容,并设置mimetype 和在你编写完成后发送输出完整的反应机构。
在exit()的情况下,你完全终止了一切,所以如果代码点火器在控制器逻辑之后做了这些东西的任何事情,它将永远不会有机会在其中设置正确的mime类型。第一名。
一般情况下,除非您有非常具体的理由,否则应避免拨打exit()
。