我正在使用ckeditor格式化textarea
<textarea id="editorAbout" rows="70" cols="80" name="editorAbout"></textarea>
现在,当我尝试使用jQuery.ajax
这样发布此数据时,
var about=escape( $("#editorAbout").text());
$.ajax({
type: "POST",
url: "../Allcammand.aspx?cmd=EditAboutCompany&about="+about,
type:"post",
async: false ,
success: function(response){
},
error:function(xhr, ajaxOptions, thrownError){alert(xhr.responseText); }
});
我收到错误
HTTP错误414.请求URL太长。
我收到错误:http://iranfairco.com/example/errorLongUrl.aspx
尝试点击该页面左下角的修改文字按钮。
为什么会这样?我该如何解决?
答案 0 :(得分:20)
根据this question,URL的最大实际长度为2000个字符。这无法像您尝试发送的那样存放大量的维基百科文章。
您应该将其放在POST请求的正文中,而不是将数据放在URL上。您需要向要传递给ajax函数调用的对象添加data
值。像这样:
function editAbout(){
var about=escape( $("#editorAbout").text());
$.ajax({
url: "Allcammand.aspx?cmd=EditAboutCompany&idCompany="+getParam("idCompany"),
type:"post",
async: false,
data: {
about: about
},
success: function(response){
},
error:function(xhr, ajaxOptions, thrownError){alert(xhr.responseText); ShowMessage("??? ?? ?????? ??????? ????","fail");}
});
}
答案 1 :(得分:1)
在我的情况下,在post调用之前有一个运行时错误。修复它解决了问题。
运行时错误是在尝试阅读step_id = 9
,其中$('#example').val()
元素不存在(即$('#example')
)。
我确信这肯定会帮助别人。
答案 2 :(得分:1)
对我来说,将type:"get"
更改为type:"post"
是可行的,因为get
会显示所有查询,并因此使其网址更大。
只需将type
从get
更改为post
。
这应该有所帮助。 :)
答案 3 :(得分:0)
就我而言,即使我正在使用&#39; POST&#39;并且对服务器的调用是成功的。它变成了我缺少dataType属性......奇怪但现在它可以工作
return $.ajax({
url: url,
type: 'POST',
dataType: 'json',
data: JSON.stringify(data)
})
答案 4 :(得分:0)
聚会有点晚,但我在使用 POST 时收到了这个 414。原来是 Windows 中的最大路径长度导致了这个错误。我正在上传文件,实际请求长度很好(使用 post)。但是在尝试保存文件时,它超出了 Windows 中默认的 260 个字符限制。然后这导致了 414,这看起来很奇怪。我只希望 501。我认为 414 是关于请求,而不是服务器处理。