Использование XHR для отправки больших объемов данных через POST - PullRequest
4 голосов
/ 30 июля 2010

У меня есть 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, чтобы отследить запрос, и он прерывает среднюю передачу множеством повторных передач пакетов (и никогда не завершается).

Пожалуйста, помогите мне, это сводит меня с ума.

1 Ответ

2 голосов
/ 31 января 2011

проверьте директивы сервера. Может быть, max_execution_time и размер загрузки имеют крошечные значения. Если js не выполняет запрос, попробуйте отладить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...