414(请求 URI 太长)

Posted

技术标签:

【中文标题】414(请求 URI 太长)【英文标题】:414 (Request-URI Too Long) 【发布时间】:2019-06-02 21:51:09 【问题描述】:

我在 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

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

【问题讨论】:

改用 POST 请求 ASP.Net Core maxUrlLength的可能重复 这是使用 ASP.NET Core 还是常规 ASP.NET?我问是因为 Core 忽略了 httpRuntime 配置。 @Powerlord ASP.NET 【参考方案1】:

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

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

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

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

【讨论】:

以上是关于414(请求 URI 太长)的主要内容,如果未能解决你的问题,请参考以下文章

414 - 请求的 uri 太长 - url 长度为 70 个字符

aws 弹性豆茎“请求 URI 太长”

如何为 nginx 请求设置允许的 url 长度(错误代码:414,uri 太大)

nginx 414 Request-URI Too Large

Ubuntu 16.04 - Apache 2.4.18 - 请求 URI 太长

nginx出现 “414 request-uri too large”