2016-09-08 26 views

回答

3

表达

您传递值的阵列,以res.header('HeaderName', arrayOfValues)。这里有一个工作示例和cURL输出,显示重复的响应头。这不是直接记录,但它确实有效([email protected])。

const express = require('express') 
const app = express() 
app.get('/', (req, res, next) => { 
    res.header('Link', ['Link1', 'Link2']) 
    res.send() 
}) 
app.listen(3000) 

卷曲-v本地主机:3000输出:

< HTTP/1.1 200 OK 
< X-Powered-By: Express 
< Link: Link1 
< Link: Link2 
< Date: Fri, 09 Sep 2016 01:44:22 GMT 
< Connection: keep-alive 
< Content-Length: 0 

节点芯HTTP

使用res.setHeader(name, arrayOfValues)

const http = require('http') 

const server = http.createServer(function (req, res) { 
    res.setHeader('Link', ['Link1b', 'Link2b']) 
    res.end() 
}) 
server.listen(3000) 

卷曲输出:

< HTTP/1.1 200 OK 
< Link: Link1b 
< Link: Link2b 
< Date: Fri, 09 Sep 2016 01:52:53 GMT 
< Connection: keep-alive 
< Content-Length: 0 
+0

谢谢,我确实尝试过,但奇怪的是在我的本地机器上,标题出现为逗号分隔值,例如'Link:Link1b,Link2b',但是当我在一台heroku测试服务器上运行同一台服务器时, '链接'字段。两台服务器都运行节点5.2.0,所以我不确定是什么原因导致了这种奇怪的行为。 – TimE

+0

最有可能不同的节点版本。我会非常仔细地检查你的环境细节。 –

+0

是的,那也是我的第一个想法,但事实并非如此。原来,我的浏览器同步代理是由于某种原因进行组合。我猜测它使用的代理方法会重新解释头域。谢谢您的帮助! – TimE

相关问题