fetch携带cookie请求,node服务端设置session后请求失败。

发布于 2022-09-06 12:22:16 字数 2432 浏览 26 评论 0

求大神帮忙看下这是什么原因……

服务端代码如下:

const Koa = require('koa'),
    KoaRouter = require('koa-router'),
    session = require('koa-session-minimal'),
    views = require('koa-views'),
    path = require('path'),
    statics = require('koa-static'),
    redis = require('koa-redis');

const app = new Koa(),
    router = new KoaRouter();

app.use(views(__dirname, {map: {html: 'nunjucks'}}));
app.use(statics(path.resolve(__dirname, 'dist'),));
//Session
app.use(session({
    store: redis(),
}));
router.get('/', async (ctx) => {
    await ctx.render('index')
});

router.post('/some', async (ctx) => {
    ctx.session.s = 'sessionString';
    ctx.body = {a: 1}
});

app.use(router.routes()).use(router.allowedMethods());

//启动服务器
app.listen(3000, function () {
    console.log(`?====Server is running at localhost:3000====?`);
});

客户端代码如下

import React from 'react';
import "isomorphic-fetch";
import promise from 'es6-promise';

class Home extends React.Component {

    post() {

        fetch('http://localhost:3000/some', {
            method: 'POST',
            credentials: 'same-origin',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                test: 666666,
            })
        }).then((res) => {
            if (res.status === 200) {
                console.log(res.json())
            } else {
                throw new Error('Server Error : ' + res.status);
            }
        })
    }

    render() {
        return <div>
            <button onClick={this.post.bind(this)}>asdasd</button>
        </div>
    }

}

export default Home;

流程就是:点击button发出请求,后台设置session。

第一次启动服务器,在没有设置session的情况下,请求正常:

clipboard.png

clipboard.png
在这次请求后,服务端设置session后,再次点击button发出请求,就会请求失败,

clipboard.png

clipboard.png

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

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

发布评论

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

评论(2

再可℃爱ぅ一点好了 2022-09-13 12:22:16

不清楚什么原因,重新安装了一次redis好就好了。

初心 2022-09-13 12:22:16

估计redis没有安装好吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文