【问题标题】:jQuery AJAX response apparent limit when 4k characters4k字符时jQuery AJAX响应明显限制
【发布时间】:2013-07-06 19:15:32
【问题描述】:

美好的一天,我遇到了 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 次“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...”,那么该功能将不起作用,如果少于 4k 那么它会可以正常工作,但如果字符数超过 4k,则不会,所以我认为响应变量或类似的东西有限制。

【问题讨论】:

  • 你能把ajax.php生成的内容也贴出来吗?

标签: jquery ajax


【解决方案1】:

来自jQuery ajax docs

成功

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

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

您应该改用currentActiveSlide.html(..)

【讨论】:

    【解决方案2】:
    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?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多