2016-09-20 44 views
1

我们正在迁移ASP.NET MVC应用程序,该应用程序具有通过FileContentResult在新标签中打开PDF的功能。在新标签中打开PDF,无需提示 - mssaveoropenblob

return new FileContentResult(byteArray, "application/pdf"); 

现在我们正在迁移这个程序作出反应,并从API(服务器端),我们下面发回的响应: -

response.Content = new ByteArrayContent(pdfByteArray); 
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf"); 

在阵营UI方面,我们都使用响应如下: -

postData(POST_API_ENDPOINT, requestData, ((err, data) => { 
    if (data.ok) { 
    data.blob().then(function(myBlob) { 
     if (window.navigator && window.navigator.msSaveOrOpenBlob) { 
      return window.navigator.msSaveOrOpenBlob(myBlob, "sample.pdf"); 
     } 
     else { 
      var objectURL = URL.createObjectURL(myBlob); 
      return window.open(objectUrl); 
      } 
     }); 
     } 
    })); 

现在,我明白,msSaveOrOpenBlob总是会提示用户“打开/保存”中的IE11。如果我需要在不提示的情况下在不同的选项卡中打开PDF,还有其他选项吗?

我想还有另外一种方法可以通过下面的方式来做到这一点,但是URL的长度也限制了这一点。

window.open("data:application/pdf;base64, " + base64EncodedPDF); 

回答

0

IE不允许我们在新选项卡中打开数据URL(可能是安全原因)并且没有解决方法 - 以前也面临同样的问题。

我们使用msSaveOrOpenBlob - 找不到替代品。

相关问题