我正在发送一个带有ajax post请求的多维对象,但有时候对象的最后一部分会丢失?您可以发送多少数据限制?
在ajax帖子之前data.accounts
计算孩子数量为221时,在成功处理程序中计算data.accounts
时,数字仍为221
当我在使用ajax发送对象之前执行此操作时,将表示所有数据
var arr = [];
for(var key in obj){
arr[arr.length] = key+' = '+obj[key];
}
alert(arr.join('\n'));
但是当在后端执行此操作时,数据的最后部分将丢失
print_r($data);
数据结构(data.accounts
中有超过200个孩子,但只收到198个)
Array
(
[account_id_] => 0
[name] => 1
[type] => 2
[type_pl] => Drift
[type_b] => Status
[type_p] =>
[type_h] => Tekst
[type_t] => Sum
[att_sumfrom] => 4
[vatcode] => 3
[accounts] => Array
(
[0] => Array
(
[account_id_] => 1
[name] => OMS�TNING
[type] => 3
[att_sumfrom] =>
[vatcode] =>
)
[1] => Array
(
[account_id_] => 1000
[name] => Varesalg
[type] => 0
[att_sumfrom] =>
[vatcode] => S25
)
[2] => Array
(
[account_id_] => 1200
[name] => Udf�rt arbejde
[type] => 0
[att_sumfrom] =>
[vatcode] => S25
)
.......
发送数据
this.send = function(){
var jqxhr = $.ajax({
url : this.url,
data : this.data,
timeout : this.no_timeout ? 0:this.timeout,
cache : this.cache,
dataType : this.dataType,
type : this.type,
global : this.global
})
答案 0 :(得分:2)
每个请求可以发送多少数据,并且取决于您使用的方法。如果您在PHP中使用POST
作为后端,请查看PHP.ini memory_limit
和post_max_size
,其中前者是脚本内存占用,后者是有多少数据可以通过邮寄请求发送。默认值分别为128M和8M。
如果您发送的数据太多,服务器不允许处理,则会按照说明剪切数据。
没有所有相关代码很难调试。您是否在打印阵列之前在后端执行任何其他操作,或者只是print_r($_POST['data'])
?因为如果你没有做任何其他事情,它仍然听起来像服务器上的内存设置。
<强>轶事强>
我记得有一个项目,我有大约400行数据,每行有7列(大量文本),我通过AJAX对象发送,最后几行中的约70个被删除。将post_max_size
加倍后,所有数据都正确发送。
答案 1 :(得分:0)
这可能与您的问题有关,也可能没有,但是您应该使用“推送”功能,而不是根据数组长度附加数组项,这会将项添加到数组的末尾:
for(var key in obj){
arr.push(key+' = '+obj[key]);
}