URL被截断为255个字符

Bil*_*lga 5 javascript url truncate ruby-on-rails

我有一个JavaScript小部件,它通过在DOM中创建标签与我的Rails应用程序进行通信.每隔一段时间,我在服务器日志中看到格式错误的请求,其中URL被截断为255个字符:

http://myapplication.example/mycontroller/1/myaction?hostname=www.mycustomer.example&request[param_a]=3&request[param_b]=1&request[param_c]=0&request[param_d]=0&request[param_e]=3&request[param_f]=1&request[param_g]=4&request[param_h]=0&request[param_i]=5&request
Run Code Online (Sandbox Code Playgroud)

从Google和Stackoverflow(不同浏览器中URL的最大长度是多少?),看起来255个字符不是URL的有效限制.

这就是我所知道的:

  • 这是一个零星的问题,它不会发生在所有请求上
  • 发生这种情况时,URL会被截断为255个字符
  • 发生此错误时,用户代理不会记录在回溯中

这是我不知道的:

  • 这种错误发生在什么类型的浏览器上?也许一些移动浏览器......

根本导致此问题的最佳方法是什么?

Mic*_*tum 3

解决根本原因的最佳方法是不要使用 GET 请求,而是使用 POST 请求。

据我所知,查询字符串的长度没有设置限制,因此真正的限制无处不在。我知道 4000 是某些 Web 服务器的限制(不记得是 IIS 还是 Apache,以及是否可以更改),但很可能某些浏览器的限制要小得多。您没有用户代理的事实可能会强调它是移动浏览器、爬虫或其他应用程序,而不是真正的浏览器。

POST 请求做起来有点复杂,但它们可以携带更大的“有效负载”,并且可以在服务器端进行配置。