2

私のサイトの一部は、メソッドを使用して HTML5 キャンバスから画像を取得します

 .toDataURL()

次に、AJAX を使用して、生データを POST メッセージの一部としてサーバーに送信します。サーバー側には、長いデータ文字列を期待する cgi スクリプトがあります。私は一貫してこのエラーを受け取ります:

 413 (Request Entity Too Large) 

perl CGI ライブラリを使用していますが、持っていません。

 $CGI::POST_MAX 

設定する、または

  $CGI::DISABLE_UPLOADS

設定。これは、サーバーに設定されている制限によるものですか? 私はApacheを使用しており、プロキシサーバーとしてnginxを使用しています。ブルーホスト サーバーにインストールするサイトを書いているので、この問題を回避できないのではないかと心配しています。基本的に 2 つの質問があります。1. html5 キャンバス メソッドを使用して、サーバーへのファイル アップロード タイプのポスト リクエストを作成する方法はありますか。2. この 413 エラーを、Apache/Nginx (または他のサーバー) の設定をいじらずに回避する方法はありますか?

4

2 に答える 2

2

このエラーは、URL が長すぎるために発生します。

URL の長さに公式の制限はありませんが、実際にはブラウザーとサーバーには制限があります。

ブラウザの安全な最大長は約 2000 文字です。これは、古いバージョンの Internet Explorer の制限でした。最近のバージョンの IE では約 4000 まで許可されていると思いますが、Google がそれよりも長い URL を生成するにもかかわらず、Chrome では約 2000 までに制限されています。

サーバーの最大長は、サーバーによって異なります。

そのため、データがそれを超える場合は、URL 文字列に変換するのではなく、別の送信方法を考え出す必要があります。

于 2013-04-19T05:36:45.850 に答える