[英]414 (Request-URI Too Long)
我在 MVC 平台上工作,我正在使用 JSON GET 調用 jqGrid。
我已閱讀Request Limits 、 maxQueryStringLength 、 maxAllowedContentLength 、 最大長度 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 值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.