Ответ 1
FileReader решил мою проблему.
var reader = new FileReader();
var out = new Blob([this.response], {type: 'application/pdf'});
reader.onload = function(e){
window.location.href = reader.result;
}
reader.readAsDataURL(out);
Я хочу открыть объект Blob в окне браузера.
Этот код работает везде, но iOS Chrome (и IE, конечно, но я могу решить IE). Окно не перенаправляется на URL (что является правильным или, по крайней мере, таким же, как в других браузерах). Существует ли какое-либо известное решение для Chrome iOS?
var blob = new window.Blob(['Hello, world!'], {type: 'text/plain;charset=utf-8'});
window.URL = window.URL || window.webkitURL;
var url = window.URL.createObjectURL(blob);
window.location.href = url;
Я пробовал <a href="{blobUrl}>
вместо window.location.href
, но он тоже не работает.
FileReader решил мою проблему.
var reader = new FileReader();
var out = new Blob([this.response], {type: 'application/pdf'});
reader.onload = function(e){
window.location.href = reader.result;
}
reader.readAsDataURL(out);
Метод FileReader.readAsBinaryString устарел.
Бит поздно, но мне пришлось что-то подобное использовать с помощью FileReader.readAsDataURL - который создает dataUrl. Я использую службу AngularJS $http для вызова API для создания pdf. Надеюсь, что это поможет, см. Ниже:
$http.post('/api/pdf', {id: '123'}, {responseType: 'arraybuffer'})
.success(function (response) {
var blob = new Blob([response.data], {type: 'application/pdf'});
var reader = new FileReader();
reader.onloadend = function(e) {
$window.open(reader.result);
}
reader.readAsDataURL(blob);
});