Javascript 为什么PDF文件作为blob打开在本地主机上不起作用?

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

我有一个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
有效。

您确定您获得了PDF
apiService.getPdf()
?如果是这样,vue路由可能会有问题。@Tom OliverHeidel是的,我肯定。它得到二进制响应,并且在生产环境中一切正常。