Javascript 为什么PDF文件作为blob打开在本地主机上不起作用?
我有一个vue应用程序。我正在从服务器获取二进制文件。我将它转换为一个blob,并以PDF格式显示在新的窗口选项卡中。在生产中,它工作正常,但在本地机器上,它说“错误无法加载PDF文档”。以下是我获取并尝试呈现文件的方式:Javascript 为什么PDF文件作为blob打开在本地主机上不起作用?,javascript,html,vue.js,pdf,blob,Javascript,Html,Vue.js,Pdf,Blob,我有一个vue应用程序。我正在从服务器获取二进制文件。我将它转换为一个blob,并以PDF格式显示在新的窗口选项卡中。在生产中,它工作正常,但在本地机器上,它说“错误无法加载PDF文档”。以下是我获取并尝试呈现文件的方式: async getFullReportAndRedirect() { try { const result = await apiService.getPdf(); const newBlob = new Blob([result
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
有效。您确定您获得了PDFapiService.getPdf()
?如果是这样,vue路由可能会有问题。@Tom OliverHeidel是的,我肯定。它得到二进制响应,并且在生产环境中一切正常。