2
我試圖設置server push with cloudflare,但它們需要多個link
頭字段來推送多個文件。但是,我找不到任何記錄的方式在node.js中包含具有相同鍵的多個頭字段。我嘗試提供一個數組,但它只是將它們連接在一起作爲單個標題字段的值。如何在Node.js中使用相同的密鑰設置多個http頭字段?
我試圖設置server push with cloudflare,但它們需要多個link
頭字段來推送多個文件。但是,我找不到任何記錄的方式在node.js中包含具有相同鍵的多個頭字段。我嘗試提供一個數組,但它只是將它們連接在一起作爲單個標題字段的值。如何在Node.js中使用相同的密鑰設置多個http頭字段?
您傳遞值的陣列,以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
使用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
謝謝,我確實嘗試過,但奇怪的是在我的本地機器上,標題出現爲逗號分隔值,例如'Link:Link1b,Link2b',但是當我在一臺heroku測試服務器上運行同一臺服務器時, '鏈接'字段。兩臺服務器都運行節點5.2.0,所以我不確定是什麼原因導致了這種奇怪的行爲。 – TimE
最有可能不同的節點版本。我會非常仔細地檢查你的環境細節。 –
是的,那也是我的第一個想法,但事實並非如此。原來,我的瀏覽器同步代理是由於某種原因進行組合。我猜測它使用的代理方法會重新解釋頭域。謝謝您的幫助! – TimE