Internet explorer ng2 pdfjs查看器Internet Explorer 11检索PDF时出现意外服务器响应(500)

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打开该网站的第二个实例,

我正在使用ng2 pdfjs查看器来显示用户上传到我的服务器上的PDF。每次用户在视图中单击该文件时,都会从服务器检索该文件并将其制作成一个blob,并将其提供给ng2 pdfjs查看器以在外部窗口中显示。这适用于除IE11之外的所有浏览器

起初,它在IE上工作正常,但如果我多次关闭并打开同一文件,过了一会儿,pdf查看器会给我一个“检索pdf'blob:B04FA5CB-1012-4CBC-8DFB-59C4CE02C34A'时的意外服务器响应(500)”。如果我用IE打开该网站的第二个实例,也会发生这种情况。当它开始出现此错误时,必须关闭整个浏览器,然后我必须返回该网站并重试,然后它再次工作

“我对服务器的所有请求都顺利通过了,”我和Fiddler核实了一下。唯一提供给查看器的是blob,因此我不知道它在哪里得到意外的服务器响应。在其他浏览器上,一切都可以完美运行

如果没有pdf查看器,则在所有浏览器上检索文件时都不会出现问题,并且可以在IE上使用msSaveOrOpenBlob打开文件。pdf查看器似乎造成了问题

<!--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时观察到了这一点。解决方法是隐藏第一个选项卡,并在超时后显示新选项卡