fetch携带cookie请求,node服务端设置session后请求失败。
求大神帮忙看下这是什么原因……
服务端代码如下:
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的情况下,请求正常:
在这次请求后,服务端设置session后,再次点击button发出请求,就会请求失败,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不清楚什么原因,重新安装了一次redis好就好了。
估计redis没有安装好吧