$ http PDF download - неверный файл

Я пытаюсь загрузить PDF-файл с сервисом $ http из AngularJS.

Когда я пытаюсь открыть файл, он недействителен (недопустимое цветовое пространство), а страница пуста.

Потом проверяю:

  1. Из консоли разработчика Firefox - Сеть: я вижу объект ответа от вызова ajax.
  2. Я установил точку останова в своем коде: я вижу объект ответа, возвращенный из $ http.

Они как-то разные: т.е.

  1. Из консоли разработчика:

    "%PDF-1.4 %����.........

  2. Из $ http:

    %PDF-1.4 %äãÏÒ.........

То же самое и со всем документом.

Что я делаю неправильно?

P.S. код:

downloadService.downloadPDF(response.url).then(
  function(response) {
    if (response) {
      var aTag = document.getElementById('downloadFile');
      aTag.setAttribute('href', 'data:application/pdf;charset=utf-8,' + encodeURIComponent(response));
      aTag.setAttribute('download', $scope.data.filename);
      aTag.click();
    }
  });

Заголовки ответа:

Cache-Control:max-age=3600, must-revalidate
Content-Disposition:inline; filename=4550f2025f45cc2d14a403fbc1840160d4d052e4_598551722_300501.pdf
Content-Type:application/pdf
Date:Tue, 23 Oct 2018 11:17:44 GMT
Expires:0
Pragma:public
Server:Apache-Coyote/1.1
Set-Cookie:JSESSIONID=Y0kTkAV7GJLVRK1fKuZfffff; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/appbase; HttpOnly
Transfer-Encoding:chunked

Поделитесь соответствующим кодом

Satpal 23.10.2018 13:43

Покажи код? Что вы пытаетесь сделать с файлом? Это двоичный

mplungjan 23.10.2018 13:43

Извините! Я обновил свой вопрос. Я отправляю данные с сервера в двоичном формате. Мне просто нужно автоматически загружать файл при загрузке страницы.

Elio 23.10.2018 13:49
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
93
1

Ответы 1

encodeURIComponent не выполняет необходимую кодировку BASE64

https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs

Взгляните сюда:

https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding

Или есть ссылка на файл на сервере

Другие вопросы по теме