当4k字符时,jQuery AJAX响应明显受限

时间:2013-07-06 19:15:33

标签: jquery ajax

美好的一天,我遇到了ajax查询的问题,但是当响应类似于4090+个字符时,jQuery ajax函数就会失败并运行错误函数,这是我的代码:

function loadContent( e) {

currentActiveSlide = e;

    var parametros = {
            "action"    : 'slideContent',
            "rel"       : e.attr('rel'),
    };

    jQuery.ajax({
                data:  parametros,
                url:   template_url + '/ajax.php',
                type:  'post',

                success:  function (response, e) {
                   //What ever...
                },
                error: function(xhr, status, error) {
                    alert(error);
        }
    });
}

响应数据是什么并不重要,我尝试将'a'字符添加4k +次,然后启动错误变量为空的错误函数。

有什么建议吗? - 提前致谢!

添加数据:

无论哪个数据都没关系,例如我发送的回复字符'a'超过4k次'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ...工作,因为它应该工作,但如果超过4k字符不会,所以我认为响应变量或类似的东西有一个限制。

2 个答案:

答案 0 :(得分:0)

来自jQuery ajax docs

  

成功

     

类型:Function(PlainObject数据,String textStatus,jqXHR   jqXHR)请求成功时调用的函数。功能   传递三个参数:从服务器返回的数据,   根据dataType参数格式化;一个字符串描述   状态;和jqXHR(在jQuery 1.4.x,XMLHttpRequest)对象。作为   jQuery 1.5,成功设置可以接受一系列函数。每   函数将依次调用。这是一个Ajax事件。

所以我认为jQuery(e).html(..)是错误的,因为e是一个状态字符串而不是一个选择器(你在成功函数的范围内,所以你以前的e var是不可访问的 - 你定义了另一个具有相同名称的var。)

您应该使用currentActiveSlide.html(..)代替。

答案 1 :(得分:0)

function loadContent(e) {
    currentActiveSlide = e;
    var parametros = {
            "action"    : 'slideContent',
            "rel"       : e.attr('rel')
    };
    jQuery.ajax({
            data:  parametros,
            url:   template_url + '/ajax.php',
            type:  'post'
    }).done(function(data, textStatus, jqXHR) {
            alert(jqXHR.responseText);
    }).fail(function(jqXHR, textStatus, errorThrown) {
            alert(errorThrown);
    });
}

查看对脚本所做的更改。您的parametros变量声明中有一个无关的逗号。此外,您的successerror方法不会以您所采用的格式作出回应。

然而,在你的观点 - 这个问题非常像这个问题:What is max size of ajax response data?。 这一个:What is the maximum possible length of a query string?