【发布时间】:2014-02-19 11:40:04
【问题描述】:
我正在尝试使用 BusinessObject RESTful API 下载生成的(pdf 或 xls)文档。
我正在使用以下请求:
$.ajax({
url: server + "/biprws/raylight/v1/documents/" + documentId,
type: "GET",
contentType: "application/xml",
dataType: "text",
headers: {"X-SAP-LogonToken": token, "Accept": "application/pdf" },
success: function(mypdf) {
// some content to execute
}
});
我收到此数据作为响应:
%PDF-1.7
%äãÏÒ
5 0 obj
<</Length 6 0 R/Filter/FlateDecode>>
//data
//data
//data
%%EOF
我一开始以为是base64的内容,所以为了让用户下载文件,我在success函数里加了这几行:
var uriContent = "data:application/pdf; base64," + encodeURIComponent(mypdf);
var newWindow=window.open(uriContent, 'generated');
但我只有一个 ERR_INVALID_URL,或者当我从 uriContent 中删除“base64”时打开生成的文件时失败。
有人知道如何使用数据响应吗?我去了here,但这并没有帮助。 谢谢!
。比约尔。
【问题讨论】:
-
恐怕,客户端(即 JavaScript)无能为力。必须更改服务器端编码,以便生成 url 链接(指向 pdf 文件)并作为响应的一部分发送。用户可以从 url 链接下载 pdf。
标签: javascript ajax download binary-data