我时不时地陷入一个困境,需要从Java脚本客户端向asp.net-mvc应用程序(运行IIS 7)发送很大的ajax GET请求。如果网址长度超过2048个字符,则默认情况下会出现异常。最简单的解决方法是使用web.config增加maxQueryStringLength
。
我的问题是,是否有充分的理由为什么您不应该走这条路,而实际上是否被认为是黑客?我已经读过一些关于不同浏览器的信息,这些浏览器限制了地址字段中的字符数,但是如果您仅使用ajax,那可能不是值得考虑的问题吗?
我知道,当您想在请求中传递大量数据时,在许多情况下应该考虑使用POST,但是有时这不是一个选择。例如,当您的URL返回文件供用户下载时。
我必须增加maxQueryStringLength
位置的一个特定示例是:用户请求地图中某些受多边形限制的位置。如果要在URL中发送此多边形,则很容易超过最大URL长度。
最佳答案
除其他外,这是一项安全措施。
另一点是,并非所有客户端(即浏览器)都支持2048以上的长度。
有关详细说明,请参见https://stackoverflow.com/a/417184/847363
如果您处于Intranet情况下,并且可以控制客户端(浏览器+版本)和服务器,那么对于“野外”应用程序可能没问题……我强烈建议改用POST
。