PHP の制限が高いにもかかわらず、AJAX POST データが制限されるのはなぜですか?

Linda Hamilton
リリース: 2024-11-04 06:05:02
オリジナル
736 人が閲覧しました

Why Is My AJAX POST Data Limited Even With High PHP Limits?

PHP/Apache/AJAX POST データ制限

AJAX を使用して POST で大量のデータ (200 万文字) を送信しようとした場合(jQuery) の場合、PHP 側はデータの取得に失敗し、「未定義のインデックス」エラーを返します。この問題は、php.ini の post_max_size 設定とは関係がありません。この設定は十分に大きい (256M) です。

制限の調査

問題は、課せられた複数の制限にあります。プロセスに関与するさまざまなコンポーネントによる:

  1. Apache:

    • LimitRequestBody: 受信 POST リクエストの最大サイズを制御します。 Apache エラー ログを確認して実際の制限を確認する必要があります。通常、デフォルトでは約 2 GB です。
  2. PHP:

    • post_max_size: POST データのサイズを制限します。この設定が php.ini で十分に高く設定されていることを確認してください (例: 256M)。
    • upload_max_filesize: POST データとは関係ありませんが、完全を期すために言及する価値があります。
    • max_input_time: 最大時間を制御します。 POST データ処理に許可されます。タイムアウトを回避するには、大きな値に設定します (-1 など)。
    • max_input_nesting_level: POST データ内のネストされた配列の深さを制限します。データに深くネストされた配列が含まれている場合は、この値を増やす必要がある場合があります。
    • max_execution_time: それが問題の原因である可能性は低いです。
    • memory_limit: PHP サブプロセスに十分なメモリがあることを確認します。データを扱います。必要に応じてこの設定を調整します (例: 256M)。
    • max_input_vars: POST リクエストの変数の数を制限します。データに多数の要素が含まれている場合は、この値を増やす必要がある場合があります。

解決策

Apache の LimitRequestBody が到達した場合、コンパイルされた制限を超えているため、データを直接 POST することはできません。データを小さなチャンクに分割し、複数の POST リクエストで送信する必要があります。

以上がPHP の制限が高いにもかかわらず、AJAX POST データが制限されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!