我有一个Vue应用。我正在从服务器获取二进制文件。我将其转换为Blob,并以PDF格式显示在新的窗口标签中。在生产环境中运行正常,但在本地计算机上显示“错误无法加载PDF文档”。这是我获取并尝试显示文件的方式:
async getFullReportAndRedirect() {
try {
const result = await apiService.getPdf();
const newBlob = new Blob([result], {type: "application/pdf"})
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(newBlob);
return;
}
const data = window.URL.createObjectURL(newBlob);
let link = document.createElement('a');
link.href = data;
link.target= '_blank';
link.click();
setTimeout(function(){
// For Firefox
window.URL.revokeObjectURL(data);
}, 100);
} catch(err) {
console.log(err);
}
}
因此,blob:http://localhost:8080/463d7877-8f9b-4136-9771-f7326dd62eab
这样的东西不起作用。
但是blob:http://production-web/463d7877-8f9b-4136-9771-f7326dd62eab
可以在生产中使用。