Загрузка файла через js

94
05 марта 2022, 14:10

У меня есть сервер на golang . Когда из браузера идет обращение к серверу по пути http://localhost:8081/generateJSON на сервере генерируется json файл и сразу же отдается - браузер предлагает его скачать.

На клиенте имеется кнопка сгенерировать json, которая как раз выполняет такой запрос :

fetch('/generateJSON')

Мне нужно чтобы появлялось диалоговое окно по типу ("сохранить как")
Я могу создать ссылку на этот файл на сервере, конечно, но мне нужно, чтобы все делалось именно при нажатии на кнопку без создания дополнительных элементов

Answer 1

Нашел подходящее мне решение, может тоже кому поможет

fetch('http://localhost:{$PORT}/generateJSON')
        .then(res => res.blob())
        .then(data => {
           let link = document.createElement('a');
           link.href = window.URL.createObjectURL(data);
           link.download = 'doc.xml';
           document.body.appendChild(link);
           link.click();
           document.body.removeChild(link);
        })

Не обошлось без создания ссылки, однако она не ведет на сервер

READ ALSO
Как передать параметры из функции внутри функции

Как передать параметры из функции внутри функции

Скажите пожалуйста, как мне передать параметры а и b в example? Формат ниже не работает

69
Функция для кнопок

Функция для кнопок

Подскажите пожалуйста, как сделать функцию, для одной кнопки, что бы при нажатие на нее, нажимались все, кнопок более 15, с разными id

79
Возврат значения из функции

Возврат значения из функции

Есть функция, где необходимо высчитать playerhealth после проведения атаки противником, чтобы определять вызывать ли потом нового противника...

96
Не работает замена подстроки в строке JS

Не работает замена подстроки в строке JS

Существует массив с именами allRoles, а также строковая переменная textSearchIn с текстомСледующий код по идее должен находить в переменной textSearchIn...

106