У меня есть несколько файлов (~ 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