美好的一天,我遇到了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字符不会,所以我认为响应变量或类似的东西有一个限制。
答案 0 :(得分:0)
成功
类型: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
变量声明中有一个无关的逗号。此外,您的success
和error
方法不会以您所采用的格式作出回应。
然而,在你的观点 - 这个问题非常像这个问题:What is max size of ajax response data?。 这一个:What is the maximum possible length of a query string?