【发布时间】:2017-11-19 21:00:39
【问题描述】:
最近我将一个项目从使用 Apache 的标准 PHP 切换到使用 NGINX 的 PHP-FPM。我立即注意到所有 JSON 请求都返回了之前返回 application/json 的 text/html 内容类型。
经过数小时搜索谷歌和堆栈溢出但一无所获,老实说开始认为我疯了,我终于意识到,纯属偶然,问题源于两次设置 Content-Type 标头。在应用程序入口点的最开始,默认为 text/html,然后再次通过设置 application/json 来发送 JSON(在 XHR 请求的情况下)。
我的问题是,为什么会有差异?为什么在 Apache 和 PHP 下运行良好的代码在 NGINX 和 PHP-FPM 下停止运行?导致第二次调用 header() 失败的组合是什么?
作为后续,代码是否应该在 Apache/PHP 下工作过,或者是否两次设置 Content-Type 本身就不好/不赞成?
【问题讨论】:
标签: php nginx http-headers content-type