Попытки загрузить PDF-документ с Угловым, мы писали это:Скачать PDF с Угловыми
var _config = { headers : {'Accept' : '*/*'},
responseType : 'arraybuffer'
};
var success = function(data, status, header, config) {
$log.debug('Download resume success - type:' + typeof (data));
var _contentType = (header('Content-Type'));
var blob = new Blob([ data ], { type : _contentType });
var url = (window.URL || window.webkitURL).createObjectURL(blob);
var anchor = angular.element('<a/>');
anchor.attr({
href : url,
target : '_blank',
download : _fileName
})[0].click();
}
$http.get(_url, _config).success(success).error(error);
Мы перепробовали все перестановки сгустка и ArrayBuffer но data
всегда возвращается в виде строки с расширенными символами «расшифрованных «то есть сломанный.
_contentType
всегда application/pdf
, хотя мы попытались сделать его application/octet-stream
.
Предложения и указатели приветствуются!
Update
Это выглядит как ошибка где-то между угловым (1.3.15 & 1.4.8) и реализациями (46,0) XMLHttpRequest Chrome, где response.data всегда возвращаются как 'декодированного' строки. Ни у Firefox (42), ни у IE (10) нет этой проблемы, и все нижеприведенные решения, скорее всего, будут работать (как это делает или оригинальное решение).
Я сообщил об этом как о возможной ошибке как для AngularJS & Chrome.
Вот парень, который сделал это. http://stackoverflow.com/a/23683763/652728 –
Да, почему это не работает прямолинейно? Похоже, должно. –
Любая причина, по которой вы создаете ссылку, а не просто window.location()? –