我正在使用ajax上传一组约50个文件,全部< = 5MB.如果连接速度较慢,则上传将“超时”,甚至没有完成第一次上传(大约需要45秒).
在Firefox中,ajax将失败并显示“错误”响应,但没有更多信息.
在Chrome中,出现net :: ERR_CONNECTION_RESET错误.
我检查了我的Apache和php.ini设置,我相信它们已经足够.
post_max_size = 1000M
upload_max_filesize = 15M
max_input_time = -1
max_execution_time = 0
max_file_uploads = 50
memory_limit = 128M
我也尝试将ajax的timeout参数设置为0.我的ajax请求看起来像这样:
return $.ajax({
url: ajaxpath,
type: 'post',
data: formData,
dataType: 'json',
timeout: 0,
xhr: function(){
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload) myXhr.upload.addEventListener('progress',function(e){
uploadProgress(e,item);
},false);
return myXhr;
},
processData: false,
contentType: false
}).fail(function(jqXHR,textStatus,errorThrown){
console.log(textStatus,errorThrown);
});
}
随着连接速度的加快,我似乎没有遇到这个问题.如果我使用浏览器的开发人员工具来限制速度,那将会发生,这就是我复制用户情况的方式.
我在某处缺少设置吗?如何保持上传状态?