【发布时间】:2017-01-02 23:13:18
【问题描述】:
我正在使用 force.com,我必须在页面中嵌入一个 chatter pdf 文件(不是作为下载文件)。我没有指向 pdf 的直接访问链接,获取文件本身的唯一方法是通过对 eg 的休息调用
/services/files/fileid/内容
这将返回二进制 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'
});
即使当我查看该请求的提琴手并将响应正文保存为文件时,pdf 也很好!
【问题讨论】:
-
嘿,我遇到了同样的问题。你碰巧知道你的原因吗?谢谢
标签: ajax rest pdf content-type