10

$_GETサイズが最大9000シンボルの大きなクエリでこのエラーが発生しました(これらは最大10個の変数に分割されています)。

Request-URI Too Large

The requested URL's length exceeds the capacity limit for this server.

この問題の回避策は何ですか?

4

3 に答える 3

8

サーバー構成を変更せずに GET でこれらすべての情報を渡したい場合、回避策はありません。

その他の解決策:

  • フォーム(または非表示のフォームで POST を使用し、それを送信するリンクに onclick イベントを追加)
  • セッションを使用します。サーバーがリンクを生成したら、それを一意の ID (または RID、完全な URI の md5 にすることができます) で $_SESSION に保存し、GET 経由で渡します。
  • データベースまたはファイル ストレージを使用する (セッションと同じ手順で)
于 2012-03-26T19:10:05.237 に答える
1

これは私にとってはうまくいきました(formDataのサポートが必要です):

<script>
  //Load form
  var formData = new FormData();
  formData.append("param_name1", "param_content1");
  formData.append("param_name2", "param_content2"); 
  formData.append("param_nameN", "param_contentN"); 

  //Send form via AJAX
  var xhr = new XMLHttpRequest();
  xhr.open("POST", YOUR_URL);  
  xhr.send(formData);
</script>
于 2013-04-28T14:48:05.623 に答える
0

URI には実際には、いくつかの条件に応じて文字数制限があります。あなたはそれをチェックアウトすることができます

回避策の 1 つは、サーバーの開発者でもある場合は、GET の代わりに POST を使用することです。

于 2012-03-26T18:47:10.910 に答える