express 4.x浏览器设置cookie的问题

发布于 2022-09-05 15:37:40 字数 1099 浏览 14 评论 0

我是一个node.js小白新手,最近研究express,有个关于cookie的问题请教下?

客户端获取不到req.cookies, 为什么啊?

var express = require('express');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var app = express();
var router = express.Router();

router.use(bodyParser.urlencoded({ extended: false }));
router.use(cookieParser());

router.get('/index1.html', function (req, res, next) {
    console.log(req.cookies);//为什么获取不到cookie,为空{}
    res.sendFile(__dirname + '/index1.html');

});

router.post('/index1.html', function (req, res, next) {
    res.cookie('name', req.body, {domain:'localhost:1338',path:'/'});
    res.send(req.body.username + ' : ' + req.body.password);
});

app.use('/base', router, function (req, res) {
    res.send('router page!');
});

app.listen(1338);



浏览器里面只有在响应头里面有set-cookie但是请求头里面没有cookie,刷新了也没有用。
还有一个问题,我的cookie设置而的域是 localhost:1338, path:/。但是为什么localhost:1338/base的响应头里面还是没有Set-Cookie?

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

掩耳倾听 2022-09-12 15:37:41

问题找到了,在stackoverflow里面提了,然后别人了答案。其实很低级,就是设置cookie的时候把端口去掉,只写localhost

cookieRouter.js:

var express = require('express');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var router = express.Router();
router.use(bodyParser.urlencoded({ extended: false }));
router.use(cookieParser());

router.get('/', function (req, res) {
    res.send('this is a router base page!');
});

router.get('/index1.html', function (req, res) {
    res.sendFile(__dirname + '/index1.html');
});

router.post('/index1.html', function (req, res) {
    res.cookie('name', req.body, { domain: 'localhost', path: '/base' });//只写localhost
    res.send(req.body);
});

module.exports = router;

app.js


var express = require('express');
var app = express();
var cookieRouter = require('./cookieRouter.js');
app.get('/', function (req, res) {
    res.send('this is home page!');
});
app.use('/base', cookieRouter);
app.listen(1338);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文