koa使用setCookies不生效问题
具体情况如标题,最近在跟着视频课程学习KOA,在学习到koa中cookies的使用时踩了一个巨坑!
具体表现如下
服务器端代码
ctx.set("Access-Control-Allow-Origin", "*");
ctx.set(
"Access-Control-Allow-Headers",
"Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild"
);
ctx.set("Access-Control-Allow-Methods", "PUT, POST, GET, DELETE, OPTIONS");
const { method, url } = ctx;
ctx.cookies.set("username", 1231312);
很简单的代码,配置跨域,配置允许的请求等,并在接受到前端请求时往前端写入cookie。
前端表现
可以看到响应头中也有set-cookie。但是问题是cookie怎么都写不到浏览器中去!!!
经过我百度再谷歌,谷歌再百度终于在一篇16年的帖子中找到了答案。(这里吐槽一句,网上百分之九十的方法都不好用。。。)
解决此类问题三部曲
1、修改koa配置 在koa配置中加上
ctx.set("Access-Control-Allow-Credentials", true);
2、修改koa配置中的跨域配置
ctx.set("Access-Control-Allow-Origin", "http://localhost:8080");
把*改成具体的域名 我也不清楚为啥,博客上写*会和第一步中的配置冲突
3、前端请求配置
axios中配置
axios.defaults.withCredentials = true;
亲测有用!!!!!!!!