Ajax下载PDF输出PDF格式为空白

时间:2017-02-07 06:41:53

标签: php jquery ajax pdf oauth

我正在尝试Ajax下载PDF。以下是我的Ajax代码:

$.ajax({
    // `url` 
    url: "/pdf/download",
    type: "GET",
    contentType: "application/octet-stream; charset=utf-8",
    // `custom header`
    headers: {
        "OAuth-Token": api.getOAuthToken()
    },
    beforeSend: function (jqxhr) {
        console.log(this.headers);
        alert("custom headers" + JSON.stringify(this.headers));
    },
    success: function (data) {
        // `file download`
        $("a")
            .attr({
            "href": data.file,
                "download": "file.pdf"
        })
            .html($("a").attr("download"))
            .get(0).click();
        //console.log(JSON.parse(JSON.stringify(data)));
    },
    error: function (jqxhr, textStatus, errorThrown) {
      console.log(textStatus, errorThrown)
    }
});

以下是我的PHP标题脚本:

$api->setHeader('Content-Transfer-Encoding', 'binary');
$api->setHeader('Cache-Control', 'public, must-revalidate, max-age=0');
$api->setHeader('Pragma', 'public');
$api->setHeader('Expires', 'Sat, 26 Jul 1997 05:00:00 GMT');
$api->setHeader('Last-Modified', $now->format(TimeDate::RFC2616_FORMAT));
$api->setHeader('Content-Type', 'application/pdf');
$api->setHeader(
    'Content-Disposition',
    'attachment; filename="' . getPdfName() . '.pdf"'
);

以上使用OAuth-Tocken的Ajac调用工作正常,但我接收到如下输出,并且PDF有空并且有时会打开。

  

%PDF-1.4%âÏÓ30 obj<

以上返回数据只是返回数据的样本。有人可以告诉我如何从数据中创建一个valide PDF?

注意:我正在尝试使用此方法,因为我无法在最新更新后在SugarCRM中下载sugarcrm fileDownload error after upgrade

0 个答案:

没有答案