414(请求 URI 太长)

Par*_*erd 5 c# ajax url asp.net-mvc jquery

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

我已阅读Request LimitsmaxQueryStringLengthmaxAllowedContentLengthURL 最大长度并配置web.config如下

<httpRuntime maxRequestLength="2147483647" executionTimeout="1200" requestValidationMode="2.0" maxQueryStringLength="2097151" maxUrlLength ="65536"/>
Run Code Online (Sandbox Code Playgroud)

&

<requestLimits maxUrl ="65536" maxAllowedContentLength="4294967295" maxQueryString ="2097151" />
Run Code Online (Sandbox Code Playgroud)

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

知道有什么办法可以解决这个问题吗?

编辑:

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

小智 1

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

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

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

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