Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取编码字符作为响应_Javascript_Node.js_Express_Axios - Fatal编程技术网

Javascript 获取编码字符作为响应

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

网址:

我想请求上面的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).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的其他几个链接,我已经更新了我的答案,以确保我们得到二进制响应。现在应该起作用。嗨,特里,非常感谢你兄弟,你真的很有意思。愿上帝保佑你。太好了,很高兴能帮上忙!祝你度过愉快的一天!