我想提供远程HTML,所以我是:
var express = require('express');
var request = require('request');
var app = express();
app.get('/', function (req, res) {
res.header('Content-Type', 'text/html');
request('https://www.googleapis.com/download/storage/v1/...o/html%2Findex.html?generation=1475649807769000&alt=media')
.pipe(res);
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
在Chrome中,Chrome不下载HTML,而是下载HTML。怎么样?
答案 0 :(得分:2)
如果您将HTTP请求的结果直接传递给您的响应,则将逐字复制由远程服务器设置的任何标头,包括可能强制下载的标头,例如content-disposition
。
你自己已经找到了一个好的解决方案:
request
.get(URL)
.on('response', (response) => {
delete response.headers['content-disposition']
})
.pipe(res);
答案 1 :(得分:0)
您必须将此属性添加到标头响应中:
res.header('Content-disposition', 'attachment; filename= "' + encodeURI(file_name) +'"' );