.net - Ajax 调用超出可接受的 URI 长度

标签 .net asp.net jquery ajax asp.net-mvc-2

我有一个 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/

相关文章:

c# - 将文本发送到另一个客户端的浏览器有哪些漏洞?

javascript - 编写此 javascript 的更有效方法

c# - NHibernate 的二级缓存和模式更改的错误

c# - ASP.NET/WCF/IIS 中静态变量的作用域是什么?

c# - 如何混合泛型和真实类型

c# - 将 QueryString ID 从 aspx 页面传递到 winform 文本框

javascript - JQuery 检测嵌套元素上的点击交互导致巨大循环

javascript - 如何扩展 DIV "angular way"(使用 Angular 砌体)

c# - Task.WhenAny 取消未完成的任务和超时

.net - .NET 中的单精度数学运算?