Internet explorer ng2 pdfjs查看器Internet Explorer 11检索PDF时出现意外服务器响应(500)
我正在使用ng2 pdfjs查看器来显示用户上传到我的服务器上的PDF。每次用户在视图中单击该文件时,都会从服务器检索该文件并将其制作成一个blob,并将其提供给ng2 pdfjs查看器以在外部窗口中显示。这适用于除IE11之外的所有浏览器 起初,它在IE上工作正常,但如果我多次关闭并打开同一文件,过了一会儿,pdf查看器会给我一个“检索pdf'blob:B04FA5CB-1012-4CBC-8DFB-59C4CE02C34A'时的意外服务器响应(500)”。如果我用IE打开该网站的第二个实例,也会发生这种情况。当它开始出现此错误时,必须关闭整个浏览器,然后我必须返回该网站并重试,然后它再次工作 “我对服务器的所有请求都顺利通过了,”我和Fiddler核实了一下。唯一提供给查看器的是blob,因此我不知道它在哪里得到意外的服务器响应。在其他浏览器上,一切都可以完美运行 如果没有pdf查看器,则在所有浏览器上检索文件时都不会出现问题,并且可以在IE上使用msSaveOrOpenBlob打开文件。pdf查看器似乎造成了问题Internet explorer ng2 pdfjs查看器Internet Explorer 11检索PDF时出现意外服务器响应(500),internet-explorer,internet-explorer-11,pdfjs,ng2-pdfjs-viewer,Internet Explorer,Internet Explorer 11,Pdfjs,Ng2 Pdfjs Viewer,我正在使用ng2 pdfjs查看器来显示用户上传到我的服务器上的PDF。每次用户在视图中单击该文件时,都会从服务器检索该文件并将其制作成一个blob,并将其提供给ng2 pdfjs查看器以在外部窗口中显示。这适用于除IE11之外的所有浏览器 起初,它在IE上工作正常,但如果我多次关闭并打开同一文件,过了一会儿,pdf查看器会给我一个“检索pdf'blob:B04FA5CB-1012-4CBC-8DFB-59C4CE02C34A'时的意外服务器响应(500)”。如果我用IE打开该网站的第二个实例,
<!--x.component.html code-->
<ng2-pdfjs-viewer #pdfViewer style="width: 800px; height: 400px"
[externalWindow]="true"
[downloadFileName]="'document.pdf'"
[openFile]="false"
[viewBookmark]="false"
[download]="true">
</ng2-pdfjs-viewer>
//x.component.ts code
@ViewChild('pdfViewer', {static: false}) pdfViewer;
openDocument(doc: Document) {
this.storageService.fetchDocument(doc).subscribe(
res => {
let type: string = res['type'];
let file: string = res['file'];
var promise = this.uploadService.decodeFromBase64(file);
promise.then((result:string)=> {
var byteArray = [];
for (let i = 0; i < result.length; i++) {
byteArray.push(result.charCodeAt(i));
}
const blob = new Blob([new Uint8Array(byteArray)], {type: type});
var fileURL = URL.createObjectURL(blob);
if (type == "application/pdf") {
this.pdfViewer.pdfSrc = fileURL;
this.pdfViewer.refresh();
}
else {
//...
}
})
}
}
//x、 component.ts代码
@ViewChild('pdfViewer',{static:false})pdfViewer;
openDocument(doc:Document){
此.storageService.fetchDocument(doc).subscribe(
res=>{
let type:string=res['type'];
let file:string=res['file'];
var promise=this.uploadService.decodeFromBase64(文件);
promise.then((结果:string)=>{
var byteArray=[];
for(设i=0;i
我从另一个pdfjs查看器文档中找到了这些信息,看起来您的ng2 pdfjs查看器也有类似的问题
快速隐藏和重新显示PDF(反之亦然)会导致错误。这是因为PDF.js的大部分是异步工作的。初始化小部件需要一些时间。如果它在初始化时被销毁,则会遇到问题。如果它在早期实例仍在销毁时被初始化,也会发生同样的情况
在选项卡中放置PDF经常会导致此问题。在选项卡之间切换通常意味着其中一个选项卡的内容被隐藏。同时,新选项卡的内容会显示出来。我在使用@angular/material时观察到了这一点。解决方法是隐藏第一个选项卡,并在超时后显示新选项卡