Я решил это благодаря этому Посту
Кажется, мне пришлось преобразовать ответ в BLOB
, создать ссылку для загрузки и указать ее на этот BLOB-объект и созданныйссылка для загрузки файла.
Таким образом, функция выглядит следующим образом:
window.submit= function () {
return new Promise((resolve, reject) => {
var form = document.getElementById("newTestForm");
var data = new FormData(form);
var xhr = new XMLHttpRequest();
var method = form.getAttribute('method');
var action = form.getAttribute('action');
xhr.open(method, action);
xhr.onload = function () {
if (this.status >= 200 && this.status < 300) {
var blob = new Blob([this.response], { type: 'image/pdf' });
let a = document.createElement("a");
a.style = "display: none";
document.body.appendChild(a);
let url = window.URL.createObjectURL(blob);
a.href = url;
a.download = 'mytext.txt';
a.click();
window.URL.revokeObjectURL(url);
}
else if (xhr.status != 200) {
reject("Failed to submit form with status" + xhr.status);
}
}
xhr.send(data);
});
}
PS Я не знаю, какой тип BLOB-объекта назван по имени txt
но это работает так же, учитывая правильное расширение.