Inte rnet Explorer выдает TypeMismatchError при запросе загрузки POST с большим телом - PullRequest
0 голосов
/ 28 мая 2020

У меня есть несколько файлов (~ 30 МБ каждый), которые нужно преобразовать в base64 и загрузить на сервер. После загрузки части файлов IE11 выдает ошибку TypeMismatchError. Содержимое файла представляет собой строку base64, что не вызывает проблемы с кодировкой. Панель сетевых запросов не содержит, запрос не выполняется перед отправкой. Остальные браузеры работают без ошибок. Как исправить?

function post(url, data, timeout) {
    return new Promise((resolve, reject) => {
        const xhr = new XMLHttpRequest();
        xhr.open("POST", url, true);
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

        xhr.onreadystatechange = (result) => {
            if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
                resolve(xhr.responseText);
            }
        };

        xhr.onerror = function (event) {
            reject(event);
        };

        xhr.timeout = timeout;

        xhr.send(data);
    });
}
function handleFileSelect() {
    post('/upload', LARGE_FILE_DATA_BASE64).catch(error => {
        // Throws TypeMismatchError error after few uploads.
    });
}

Гугл говорит об этой аналогичной проблеме только здесь: https://helperbyte.com/questions/276626/jquery-deferrer-typemismatcherror-when-you-bulk-load-data-cant-find-what-this-might-mean

...