414(请求URI太长)

时间:2019-01-08 08:25:08

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

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

我已阅读Request LimitsmaxQueryStringLengthmaxAllowedContentLengthmaximum 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

之后,我仍然面临着同样的问题

1 个答案:

答案 0 :(得分:0)

解决414响应代码问题的两个方法:

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

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

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