我正在使用Express来提供一些网页。我有一个要使用节点的https API下载的字体文件(woff)。然后,我将响应标头传递给要返回给客户端的响应。我的问题是express似乎正在修改响应标头,特别是content-type
和content-length
标头。
我正在调用res.set()并从服务器端请求中传递标头
以下是一些代码:
app.get('/*', (req, res, next) => {
https.get(URI, (serversideRes) => {
serversideRes.on('end', () => {
res.set(serversideRes.headers);
console.log(res.getHeaders()['content-type']); //font/x-woff
console.log(res.getHeaders()['content-length']); //27756
res.send(data);
console.log(res.getHeaders()['content-type']); //font/x-woff; charset=utf-8
console.log(res.getHeaders()['content-length']); //49574
}
}
}
在浏览器控制台中,我得到
无法解码下载的字体
OTS解析错误:WOFF标头中的文件大小不正确
此方法对简单的非流式响应执行许多有用的任务:例如,它自动分配Content-Length HTTP响应标头字段(除非先前定义),并提供自动的HEAD和HTTP缓存新鲜度支持。
在这种情况下,标头似乎显然是先前定义的。