我使用
serverless创建了一个lambda
函数.此
函数在GET请求上通过API网关触发,并应从缓冲区返回pdf
文件.我正在使用
html-pdf创建缓冲区并尝试使用以下命令返回pdf
文件
let response = {
statusCode: 200,headers: {'Content-type' : 'application/pdf'},body: buffer.toString('base64'),isBase64Encoded : true,};
return callback(null,response);
但浏览器只是无法加载pdf,所以我不确切知道如何将pdf文件直接返回到浏览器.无法找到解决方案.
好吧,我找到了答案.
我的响应对象中的设置很好,我只需手动更改API网关中的设置,以便在浏览器中工作.我在API网关控制台的二进制设置下为二进制媒体类型
添加了“* / *”
API网关
>只需登录您的控制台即可
>选择你的api
>在下拉列表中单击二进制支持
>编辑二进制媒体类型并添加“* / *”
前端
在新标签中打开api url(target =“_ blank”).浏览器可能正在处理编码的base 64响应.在我的情况下使用chrome,浏览器只是在新选项卡中打开pdf,就像我想要的那样.