![Why is my AJAX POST data exceeding 2 million characters arriving empty on the PHP side?](https://img.php.cn/upload/article/000/000/000/173065563411827.jpg)
PHP/Apache/AJAX POST 制限
jQuery の AJAX 経由で 200 万文字を超える POST データを送信しようとすると、 PHP 側でデータが空白として受信される問題。これは多くの場合、システムのさまざまなコンポーネントの制限が原因です。
Apache
Apache には LimitRequestBody というパラメータがあり、デフォルトでは約 2GB に設定されています。 POST サイズがこの制限を超えると、Apache はリクエストを拒否し、PHP 側でデータは受信されません。詳細については、Apache エラー ログを確認してください。
PHP
PHP には、POST データの処理に影響を与える可能性のあるパラメータがいくつかあります。
- post_max_size : これは、PHP が受け入れることができる POST データの最大サイズを直接決定します。この値を適切な量に設定し、投稿する予定のデータよりも大きくなるようにします。
- upload_max_filesize: 無関係かもしれませんが、一部のユーザーはこの値を増やすことで成功したと報告しています。
- max_input_time: If POST リクエストが完了するまでに時間がかかりすぎる場合、このパラメータにより問題が発生する可能性があります。適切な値に設定するか、-1 に設定してタイムアウトを無効にします。
- max_execution_time: 原因となる可能性は低いですが、この値が大規模な POST リクエストを処理するのに十分な値であることを確認する価値があります。
- memory_limit: POST データが PHP プロセスのメモリ制限を超えると、問題が発生する可能性があります。必要に応じて、この値を調整します。
その他の考慮事項
- サーバーの前にあるプロキシ サーバーまたはロード バランサの制限を確認してください。
- サイズがシステムの制限を超える場合は、大きな POST データをより小さなチャンクに分割することを検討してください。
以上が200 万文字を超える AJAX POST データが PHP 側に空で届くのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。