以内嵌pdf形式显示REST API响应(不是下载文件)

3
我正在使用force.com,需要在页面中嵌入chatter pdf文件(而不是下载)。我没有直接访问pdf的链接,唯一获取文件本身的方法是通过rest调用,例如/services/files/fileid/content。这将返回二进制pdf数据,然后我想将其嵌入网页中。
根据各种Stack Overflow答案,我得到了一些很好的想法来做到这一点,pdf在页面中打开,但它是空白的 - 即它没有内容。它有正确数量的页面,但没有文本显示。
如果我在此请求发生时运行fiddler,并将响应保存为文件,pdf看起来很棒。但由于某种原因,传递给浏览器的ajax请求响应不好。我怀疑这与我需要进行某种编码以便正确地向浏览器传递pdf数据有关。
非常感谢任何建议或不同的方法 - 我尝试了许多不同的方法,这是我最接近的,但又被阻止了。
以下是我调用API并在浏览器中显示的代码:
$.ajax({
url: "/services/data/v35.0/chatter/files/069R0000000O8reIAC/content?versionNumber=1",
headers: {"Authorization": "OAuth xxxxxxxxxxxx"},
contentType: "application/pdf",
success: function(data) 
{ 
    
      var blob = new Blob([data], {type: "application/pdf"});
      window.open(URL.createObjectURL(blob));     

},
 type: 'GET'
});

这将打开一个页面,看起来像这样:(注意:它有正确数量的页面) enter image description here 即使我在该请求上查看fiddler并将响应正文保存为文件,PDF也是好的!

嘿,我遇到了同样的问题。你知道你的问题原因吗?谢谢。 - luciferche
1个回答

0

不仅要将ContentType设置为"application/pdf",还要将ContentDisposition设置为"inline"。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接