c# - 414(请求 URI 太长)

标签 c# jquery ajax asp.net-mvc url

我正在 MVC 平台上工作,我正在使用 JSON GET 调用 jqGrid。

我已阅读 Request Limits , maxQueryStringLength , maxAllowedContentLength , maximum length of URL并配置 web.config 如下

<httpRuntime maxRequestLength="2147483647" executionTimeout="1200" requestValidationMode="2.0" maxQueryStringLength="2097151" maxUrlLength ="65536"/>

&

<requestLimits maxUrl ="65536" maxAllowedContentLength="4294967295" maxQueryString ="2097151" />

但它仍然给出 414(Request-URI Too Long) 错误。

知道这个问题的解决方案是什么吗?

编辑:

根据 Rory 的评论,我将 GET 请求更改为 POST。通过更改它应该可以解决问题。讨论可以在这里找到here 。但是,在更改并查看 ASP.Net Core maxUrlLength 后我仍然面临同样的问题。

最佳答案

解决 414 响应代码问题的两个选项:

<强>1。通过 POST 请求: 将查询字符串转换为 json 对象并通过 POST 发送到 API 请求

<强>2。通过 GET 请求: 请求的最大长度取决于服务器端和客户端。大多数网络服务器都有 8k 的限制,这是可配置的。在客户端,不同的浏览器有不同的限制。浏览器IE和Safari限制为2k,Opera 4k和Firefox 8k。表示 GET 请求的最大长度为 8k,最小请求长度为 2k。

如果超过请求最大长度,则请求将被网络服务器或浏览器在限制之外截断,且不会发出任何警告。某些服务器截断了请求数据,但某些服务器因数据丢失而拒绝请求,并返回响应代码 414。

关于c# - 414(请求 URI 太长),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54087816/

相关文章:

c# - 使用 Fluent NHibernate 将流畅的映射与自动映射混合在一起?

javascript - 如何使用 socket.io 向特定客户端发送消息

Javascript/JQuery 如何循环遍历所有具有 aria-invalid 属性的 html 元素

javascript - 操作后更新 jquery 中的类信息并为 ajax 序列化按钮的 id

c# - XAML 中的命令绑定(bind)与 ViewModel 中的 ICommand 属性

c# - UIDatePicker 日期 : 1 Hour Wrong 的时区问题

c# - 使用linq将数据从一个表复制到另一个表的最快方法

jquery - 函数 scrollTo(id) 中的 jquery 偏移问题

javascript - 将匿名函数更改为命名函数时如何添加额外参数

ajax - 在ajax调用上显示*浏览器*加载指示符(例如发生回发时)