我寫了一個簡單的 Express.js 服務器,它只設定一個名為的 cookiehello-world并回傳請求頭。這是代碼:
const app = require('express')()
app.get('/', (req, res) => {
res.cookie('hello-world', 'this-is-the-value-of-cookie')
res.json(req.headers)
})
app.listen(80, '0.0.0.0')
問題是移動版 Google Chrome 不會在第一個請求中發送 cookie。這是它的演示:https : //file.io/OIilmHoA2IKK
在演示中,我使用了 Android Studio 的模擬器和 nip.io 通配符 DNS。我只是在本地機器上啟動 Express.js 服務器,然后通過http://10.0.2.2.nip.io訪問它
正如您在演示中看到的,我首先打開頁面并重繪 以確保hello-world設定了 cookie。然后我關閉谷歌瀏覽器并重新打開它。但是第一次打開頁面,還是沒有hello-worldcookie。
我在這里做錯了什么?我希望hello-world即使在瀏覽器重新啟動后的第一個請求中也發送 cookie。
uj5u.com熱心網友回復:
您的代碼片段并不完全清楚,但我假設您正在創建會話 cookie 而不是持久性 cookie。因此,當您關閉并重新打開瀏覽器時,cookie 消失了。
您可以通過向 cookie 值添加到期日期來創建持久 cookie。您的 cookie 將一直保存到過期(或被用戶洗掉)。該日期引數必須格式化為 UTC 字串。你可以這樣做:
res.cookie('hello-world', 'this-is-the-value-of-cookie; expires=' (new Date(2030, 0).toUTCString()));
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/345978.html
標籤:javascript 节点.js 表达 谷歌浏览器 饼干
上一篇:在現有的div中創建新的div
下一篇:選擇總和-Javascript
