HTTP错误414.请求URL太长

时间:2011-08-05 11:08:10

标签: javascript jquery html ajax

我正在使用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
尝试点击该页面左下角的修改文字按钮。

为什么会这样?我该如何解决?

5 个答案:

答案 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会显示所有查询,并因此使其网址更大。
只需将typeget更改为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 是关于请求,而不是服务器处理。