Как скачать файл из полученной ссылки response?

125
29 ноября 2019, 21:10

С фронтенда (React) отправляю fetch-запрос на сервер для скачивания определённого файла. В этой же функции получаю response со статусом 200.

Исходный код функции на фронтенде:

downloadFileFromServer(fileName) {
fetch(`${Config.baseUrl}/download/${this.state.id}/${fileName}`, {
  method: 'GET'
})
    .then((response) => {
      if (response.status >= 400) {
        throw new Error('Bad response from server');
      }
      return response.url;
    });
 }

Исходный код функции на сервере (Node + Express):

app.route('/download/:id/:fileName')
.get((req, res) => {
  const dir = `${Config.basePath}/${req.params.id}/${req.params.fileName}`;
  res.download(dir);
});

То, что содержится в response:

Response {type: "cors", url: "http://127.0.0.1:3000/download/268/%D0%BA%D0%BE%D0%BF%D0%B8%D1%8F).docx", redirected: false, status: 200, ok: true, …} body: (...) bodyUsed: false headers: Headers {} ok: true redirected: false status: 200 statusText: "OK" type: "cors" url: "http://127.0.0.1:3000/download/268/%D1%83%D0%B3%D0%B0%D1%8F%20%D0%BA%D0%BE%D0%BF%D0%B8%D1%8F).docx" proto: Response

Как правильно скачать нужный файл? Я пробовал:

  1. Использовать response.blob(); но получил ошибку в консоли;
  2. Вместо return response.url открыть эту ссылку для скачивания с помощью и react-route, но результата никакого

Скачивание (и соответственно выполнение функции downloadFileFromServer) выполняется при нажатии на ссылку (ссылка в теге a)

READ ALSO
При клике передать заголовок в инпут

При клике передать заголовок в инпут

Есть скрипт который передает при клике заголовок ссылки в инпут

146
Подключения javascript plugina MarkitUp

Подключения javascript plugina MarkitUp

Пишу проект на симфони 4 и не могу подключить Plugin Javascript MarkitupEditor в других проектах пробывал и подключеться с лекгостьюДело в том что использываю...

120
вывести на экран сумму всех чисел, расположенных в числовом промежутке от Х до У

вывести на экран сумму всех чисел, расположенных в числовом промежутке от Х до У

У меня задание, вывести на экран сумму всех чисел, расположенных в числовом промежутке от Х до У

142
Вылезают элементы за пределы блока?

Вылезают элементы за пределы блока?

Такая проблема, делаю верстку на флексбокс, а элементы вылезают за пределы блока, как это исправить?

138