ホームページ  >  記事  >  バックエンド開発  >  AJAX 経由で大きな非バイナリ データを POST できないのはなぜですか?

AJAX 経由で大きな非バイナリ データを POST できないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-03 19:35:30608ブラウズ

Why Can't I POST Large Non-Binary Data via AJAX?

PHP/Apache/AJAX POST データ制限について

質問:

AJAX 経由で大きな非バイナリ データを POST できず、空の結果を受け取るPHP で、未定義の $_POST 要素を示すエラーが発生しました。

コード:

// JavaScript
$.ajax({
    data: {'data_string': string}
});

// PHP
$_POST['data_string']

分析:

POST プロセスを妨げている可能性がある潜在的な制限の包括的な調査この問題を解決するには、

考慮事項:

  • Apache: LimitRequestBody は、Apache が受信する HTTP リクエスト本文のサイズを制限します。通常は 2GB に設定されますが、特定の値は異なる場合があります。
  • PHP: いくつかのパラメータが POST データ処理に影響します:

    • post_max_size:受け入れ可能な POST データ。
    • upload_max_filesize: ファイルのアップロードの最大サイズを設定します。
    • max_input_time: POST データ入力に許可される最大時間を指定します。
    • max_input_nesting_level: 制限POST データ内の複雑な配列のネスト レベル。
    • memory_limit: PHP で使用できるメモリを制限します。これは、大規模な POST データ処理に影響を与える可能性があります。
    • max_input_vars: POST データで許可される変数の数を制限します。 .
  • その他の要素:

    • プロキシ サーバー: プロキシは、リクエスト本文のサイズに独自の制限を課す場合があります。
    • クライアント側ブラウザ: ブラウザの機能は、送信できる POST データのサイズに影響を与える可能性があります。

解決策:

この問題を解決するには、Apache、PHP、およびその他の関連コンポーネント内のこれらの制限パラメーターをそれぞれ確認してください。送信される POST データのサイズを超えていることを確認してください。

Apache の組み込み制限を超えた場合は、大きなデータを小さなチャンクに分割し、段階的に送信することを検討してください。

以上がAJAX 経由で大きな非バイナリ データを POST できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。