Javascript 获取编码字符作为响应
网址: 我想请求上面的URL并获取PDF文件作为响应,当我在postman或Dornism中这样做时,我可以看到输出为PDF。然而,当我尝试使用代码时,我在前端得到了垃圾值Javascript 获取编码字符作为响应,javascript,node.js,express,axios,Javascript,Node.js,Express,Axios,网址: 我想请求上面的URL并获取PDF文件作为响应,当我在postman或Dornism中这样做时,我可以看到输出为PDF。然而,当我尝试使用代码时,我在前端得到了垃圾值 var axios = require("axios").default; var options = {method: 'GET', url: 'http://www.africau.edu/images/default/sample.pdf'}; axios.request(options).the
var axios = require("axios").default;
var options = {method: 'GET', url: 'http://www.africau.edu/images/default/sample.pdf'};
axios.request(options).then(function (response) {
res.send(response.data);
}).catch(function (error) {
console.error(error);
});
我得到的输出
%PDF-1.3 %���� 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Count 2 /Kids [ 4 0 R 6 0 R ] >> endobj 4 0 obj << /Type /Page /Parent 3 0 R /Resources << /Font << /F1 9 0 R >> /ProcSet 8 0 R >> /MediaBox [0 0 612.0000 792.0000] /Contents 5 0 R >> endobj 5 0 obj << /Length 1074 >> stream 2 J BT 0 0 0 rg /F1 0027 Tf 57.3750 722.2800 Td ( A Simple PDF File ) Tj ET BT /F1 0010 Tf 69.2500 688.6080 Td ( This is a small demonstration .pdf file - ) Tj ET BT /F1 0010 Tf 69.2500 664.7040 Td ( just for use in the Virtual Mechanics tutorials. More text. And more ) Tj ET BT /F1 0010 Tf 69.2500 652.7520 Td ( text. And more text. And more text. And more text. ) Tj ET BT /F1 0010 Tf 69.2....
%PDF-1.3%���� 1 0 obj>endobj 2 0 obj>endobj 3 0 obj>endobj 4 0 obj>/MediaBox[0 0 612.0000 792.0000]/Contents 5 0 R>>endobj 5 0 obj>stream 2 J BT 0 0 0 0 rg/F1 0027 Tf 57.3750 722.2800 Td(一个简单的PDF文件)Tj ET BT/F1 0010 Tf 69.2500 688.6080 Td(这是一个小的演示.PDF文件-)Tj ET BT/F1 0010 Tf 69.2500 664.7040 Td(仅用于虚拟力学教程。更多文本和更多)Tj ET BT/F1 0010 Tf 69.2500 652.7520 Td(文本和更多文本和更多文本)。Tj ET BT/F1 0010 Tf 69.2。。。。
预期产量
如果将标题设置为application/pdf,文件将正确显示
const axios = require("axios").default;
const options = {
method: 'GET',
url: 'http://meltwaternews.com/ext/mediac/311919964.pdf',
responseType: "arraybuffer"
};
axios.request(options).then(function (response) {
res.header('Content-Type', 'application/pdf');
res.send(response.data);
}).catch(function (error) {
console.error(error);
});
我已经更新了答案,以确保我们获得了“arraybuffer”的响应类型,请参见位于的axios文档。请删除regex标记,这与regex@PeterThoeny对不起,先生,谢谢你让我知道。嗨@uingtea,res.send()将发送HTTP响应到前面的EdHi @特里,谢谢你看这个,实际上它对几个PDF文件起作用。然而,它只会显示空白的幻灯片,像下面的Hi @ Rjjdrh的其他几个链接,我已经更新了我的答案,以确保我们得到二进制响应。现在应该起作用。嗨,特里,非常感谢你兄弟,你真的很有意思。愿上帝保佑你。太好了,很高兴能帮上忙!祝你度过愉快的一天!