我有一个XHR,可以将大量数据上传到服务器。该XHR断断续续地死亡,看似没有规律。目前,我的代码如下所示:
function makeFormData(data) {
var formdata = "";
for (var key in data) {
formdata = formdata + "&" + key + "=" + encodeURIComponent(data[key]);
}
return formdata.slice(1);
}
function xhr(url, data, onsuccess, onerror) {
var xhrequest = new XMLHttpRequest();
xhrequest.onreadystatechange = function () {
if (xhrequest.readyState != 4)
return;
if (xhrequest.responseText)
onsuccess(xhrequest.responseText);
}
xhrequest.onerror = function (error_param) {
onerror(error_param);
}
xhrequest.open('POST', url, true);
xhrequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhrequest.send(makeFormData(data));
}
这是在Chrome扩展程序中。我究竟做错了什么?我如何才能将表单分成多部分,以使上传更小?我已经使用Wireshark来跟踪请求,并且由于许多数据包重传而导致发送中断(并且从未完成)。
请帮助我,这使我发疯。
最佳答案
检查服务器指令。也许max_execution_time和上载大小具有很小的值。如果js不执行请求,请尝试对其进行调试。