我的反应和表达方式很简单。我在响应中添加了标头,但是在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
答案 0 :(得分:0)
Access-Control-Expose-Headers
响应标头指示哪个 通过列出标头的名称,标头可以作为响应的一部分公开。默认情况下,仅公开6个简单的响应标头:
- 缓存控制
- 内容语言
- 内容类型
- 到期
- 最后修改
- 编译指示
如果您希望客户端能够访问其他标头,则必须 使用
Access-Control-Expose-Headers
标头列出它们。