簡體   English   中英

414(請求 URI 太長)

[英]414 (Request-URI Too Long)

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

我已閱讀Request LimitsmaxQueryStringLengthmaxAllowedContentLength最大長度 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。 通過更改它應該可以解決問題。 可以在此處找到討論。 但是,在更改它並通過ASP.Net Core maxUrlLength之后,我仍然面臨同樣的問題

解決 414 響應代碼問題的兩個選項:

1. 通過 POST 請求:將查詢字符串轉換為 json 對象並通過 POST發送到 API 請求

2.通過GET請求請求的最大長度取決於服務器端和客戶端。 大多數網絡服務器的限制為 8k,這是可配置的。 在客戶端,不同的瀏覽器有不同的限制。 瀏覽器 IE 和 Safari 限制為 2k,Opera 4k 和 Firefox 8k。 表示 GET 請求的最大長度為 8k,最小請求長度為 2k。

如果超過請求最大長度,則請求會被 Web 服務器或瀏覽器在沒有任何警告的情況下截斷超出限制。 一些服務器截斷了請求數據,但一些服務器由於數據丟失而拒絕它,他們將返回響應代碼 414。

好吧,如果以上都不起作用,您可以編輯 http 服務注冊表設置以增加限制。

在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTPFilter\Parameters 下添加以下注冊表雙字值

MaxFieldLength 值為 65534。這為每個 header 設置了上限。

再添加一個 MaxRequestBytes 值為 16777216 的雙字。這決定了請求行和標頭總大小的上限。

其默認設置為 16 KB。 如果此值低於 MaxFieldLength,則調整 MaxFieldLength 值。

按照如何啟動和停止 http 服務

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM