最近、私はApacheを備えた標準PHPからNGINXを使用したPHP-FPMにプロジェクトを切り替えました。私はすぐにすべてのJSON要求がtext/htmlコンテンツタイプを返すことに気付きました。以前はapplication/jsonを返していました。php-fpm、nginx、およびヘッダ
Googleが検索してスタックオーバーフローして何も見つからず、正直に私が狂ったと思うようになったとき、私はついにContent-Typeヘッダーを2回設定することによって問題が発生したことに気付きました。アプリケーションのエントリポイントの開始時には、text/htmlをデフォルトとし、application/jsonを設定してJSON(XHRリクエストの場合)を送信したい場合はもう一度やり直してください。
私の質問は、違いはなぜですか?なぜApacheとPHPの下で完璧に動作するコードがNGINXとPHP-FPMで動作しなくなるのですか? header()への2回目の呼び出しを失敗させる組み合わせについては何ですか?
フォローアップとして、コードがApache/PHPの下で動作したか、Content-Typeを本質的に悪い/嫌になるように設定していますか?
なぜ、PHPには$ replace引数がありますか?デフォルトの動作がヘッダーを置き換えるものであれば、PHPはこれを処理し、重複はApache/NGINXに送られるべきではないと仮定してはいけませんか? –