[英]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"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.