我有一个 ASP.NET MVC 配置,并且正在构建一个报告生成器。我正在输出一个 JQuery 表,以便用户可以在将其作为 PDF 获取之前对其进行排序和重新排列。我的 PDF 组件是基于 .NET 的,因此我需要通过 AJAX 将修改后的表格发送回服务器。
问题是 URI 可能会达到 100k 个字符,从而使服务器响应状态为 414(请求 URI 太长)。 IIS 似乎不允许 URI 超过几千个字符。
我承认编写这么大的 URL 看起来很奇怪,所以我想我可能遗漏了一些东西。是否有其他方法将数据发布到服务器,或者可能以其他方式解决这个问题?
最佳答案
发送长度超过几百个字符的数据的推荐方法是使用 HTTP POST 而不是 GET。
GET 将所有数据作为键值对附加到 URI(例如 ?foo=bar&baz=blah
),而 POST 将数据放入请求正文中。总请求长度也有限制,但远远大于 URI 的限制。
在 jQuery 方面,从 GET 切换到 POST 很简单 - 请阅读有关 jQuery.ajax() 的文档以了解详细信息。
在服务器端,您可能需要进行一些更改,以便从 POST 而不是 GET 读取参数,但在大多数情况下,这也相对容易。
关于.net - Ajax 调用超出可接受的 URI 长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4214121/