javascript - express使用fetch请求无法设置cookie
大家讲道理
大家讲道理 2017-04-11 11:59:44
[JavaScript讨论组]

想问一下为什么我使用fetch提交表单数据,express无法设置cookie,而直接使用form标签时却可以设置。

为了方便,我把模拟的代码全贴上来

var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var app = express();

app.use(require('cookie-parser')());

app.get('/aa', function (req, res) {
    console.log(req.cookies);
    res.cookie('aa', 'aa');
    res.send('a');
});
app.post('/bb', function (req, res) {
    console.log(req.cookies);
    res.cookie('bb', 'bb');
    res.send('bb');        
})
app.get('*', function (req, res){
    console.log('get *');
    console.log('cookie: ', req.cookies);
    res.sendFile(path.resolve(__dirname, 'a.html'));
});
app.listen('3002', function () {
    console.log('start working');
});

fetch

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
怪我咯

与XMLHttpRequest一样,从服务器返回的Set-Cookie响应头是Forbidden header name,因此无法使用response.headers.get()进行读取。 浏览器负责处理设置新的Cookie,cookie可以通过document.cookie读取。但fetch的默认行为是完全忽略Set-Cookie头。想从服务器接受Cookie,您必须使用credentials选项。

credentials选项列表

PHP中文网

从stack overflow得到了答案了

fetch('/b', { method : 'post', credentials : 'include' })

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号