簡體   English   中英

請求 URL 太長 HTTP 錯誤 414。請求 URL 太長

[英]Request URL Too Long HTTP Error 414. The request URL is too long

我正在嘗試使用 ajax post 向我的 c# 處理程序發布一個包含 29376 個字符的 url。

我收到錯誤請求 URL 太長 HTTP 錯誤 414。請求 URL 太長。 如果我嘗試以相同的方法使用較小的 url 發布,則系統正常工作。

我錯過了什么?

這就是我發布給我的處理程序的方式

  $.ajax({    
url: "MyHandlers/theHandler.ashx?method=mymethod",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: false,
        data: {
            var1: var1,
            var2: var2,
            var3: var3,
            var4: var4,
            var5: var5,
            var6: var6,
            var7: var7,
            var8: var8,
            var9: var9,
            var10: var10,
            var11: var11,
            var12: var12,
            var13: JSON.stringify(var13) //this is the var that is too long
        },
        success: function (result) {

        },
        error: function (result) {

        }
    });

我的 C# 方法

public string mymethod(int var1, int var2, string var3, string var4, int var5, string var6, string var7, string var8, string var9, string var10, string var11, string var12)
    {
         var jsonString = context.Request.Params["var13"];
    }

你需要像下面這樣指定你的ajax請求:

    $.ajax({
        url: "MyHandlers/theHandler.ashx?method=mymethod",
        contentType: "application/json; charset=utf-8",
        async: false,
        method: "POST",
        data: {
            var1: var1,
            var2: var2,
            var3: var3,
            var4: var4,
            var5: var5,
            var6: var6,
            var7: var7,
            var8: var8,
            var9: var9,
            var10: var10,
            var11: var11,
            var12: var12,
            var13: JSON.stringify(var13) //this is the var that is too long
        },
        dataType: "json"
    });

首先 - 你不是在做 POST。 正如其他人在評論中所說的那樣,您正在執行 GET 操作。 414 錯誤意味着客戶端請求的 URI 比服務器願意解釋的要長。

此錯誤的最常見原因正是您在這里所做的 - 發送 GET 而不是 POST。

現在,什么是 GET? GET 是在 URI 中完全發送的請求。 服務器可以解釋來自 URI 的值,例如:

http://www.example.com?operation=add&value=MyValue

因此,要傳遞越來越多的值,您最終會得到太長的 URL。

什么是POST? POST 是未在 URI 中發送的請求。 所有內容都以http內容發送。 例如:您正在發送內容:

{
    "FirstName" : "Jack",
    "SecondName": "London"
}

到這個地址: http : //www.example.com

所以你應該在這里發送 POST 請求而不是 GET。 只需添加:

type: "POST"

https://api.jquery.com/jquery.post/

暫無
暫無

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

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