【问题标题】:Request-URI Too Large [duplicate]请求 URI 太大 [重复]
【发布时间】:2012-04-10 06:55:02
【问题描述】:

在大小约为 9 000 个符号的大型 $_GET 查询中出现此错误(它们被分为 ~10 个变量)。

Request-URI Too Large

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

有什么办法可以解决这个问题?

【问题讨论】:

  • 为什么有这么长的网址?
  • 尝试降低 URI 大小。我从来没有超过 200 个字符,而这本身就很重要。您不需要 超过 9000 个!!!! 个字符....
  • “解决这个问题的方法是什么?”缩短网址
  • 如果您需要将这么多数据从客户端传递到服务器,解决方法是将其放在表单帖子中,而不是在查询字符串中。或者可能在请求正文中(不太常用)。

标签: php get request capacity


【解决方案1】:

如果您想在不更改服务器配置的情况下使用 GET 传递所有这些信息,则没有解决方法。

其他解决方案:

  • 将 POST 与表单(或隐藏表单并在提交它的链接上添加 onclick 事件)一起使用
  • 使用会话。当服务器生成链接时,将其存储在 $_SESSION 中,并带有唯一 id(或 RID,可以是完整 URI 的 md5)并通过 GET 传递。
  • 使用数据库或文件存储(与会话过程相同)

【讨论】:

  • 我认为这样你只是在将来移动问题,当 url 压缩太大时。如果您需要通过 get 传递太多信息,最好更改逻辑。 (我的 2 美分)
  • 这只是一个相关的问题,如果您阅读那里接受的答案,您甚至可以看到这不是未来那么多,但已经过去了。
【解决方案2】:

这对我有用(它需要 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>

【讨论】:

    【解决方案3】:

    一个 URI 实际上有一个字符限制,具体取决于几件事。你可以去看看

    如果您也是开发服务器的人,一种解决方法是使用 POST 而不是 GET。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 2014-03-28
      相关资源
      最近更新 更多