Express或React正在删除标题

时间:2019-06-07 07:29:59

标签: reactjs express

我的反应和表达方式很简单。我在响应中添加了标头,但是在React应用中并非所有标头都可用。

在Express中...

app.post('/api/createpdf', (req, res) => {        
    console.log("Handling...");

    let absoluteFilePath = ...

    res.setHeader('Content-disposition', 'attachment; filename=test');
    res.setHeader('a', 'b');
    res.setHeader('Content-types', 'application/pdf');
    res.setHeader('c', 'd');

    var filestream = fs.createReadStream(absoluteFilePath);
    filestream.pipe(res);
}

反应中...

createPdf_onClick() {

    console.log("Creating PDF...");

    fetch(`http://localhost:3001/api/createpdf`, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                "a": "b",
                "c": "d"})})
        .then(response => {
                console.log("Headers...");
                response.headers.forEach((v, k, p) => {
                    console.log("k: " + k + ", v: " + v);
                });
                console.log("done");

        });
}

控制台输出...

App.js:38 Headers...
App.js:40 k: content-type, v: application/pdf
App.js:42 done

1 个答案:

答案 0 :(得分:0)

  

Access-Control-Expose-Headers 响应标头指示哪个   通过列出标头的名称,标头可以作为响应的一部分公开。

     

默认情况下,仅公开6个简单的响应标头:

     
      
  • 缓存控制
  •   
  • 内容语言
  •   
  • 内容类型
  •   
  • 到期
  •   
  • 最后修改
  •   
  • 编译指示
  •   
     

如果您希望客户端能够访问其他标头,则必须   使用Access-Control-Expose-Headers标头列出它们。

Access-Control-Expose-Headers