为何我将content-type设置为image/jpeg后无法存储cookie?
import Koa from "koa";
import Router from "koa-router";
import request from "supertest";
const app = new Koa();
const router = new Router();
const client = request.agent(app.listen(3000));
router
.get("/", async (ctx, next) => {
try {
let cv = ctx.cookies.get('temp');
if (cv) {
console.log(cv)//第二次请求没有获取到cookie的值,cookie没有存储,可能是content-type设置有误
ctx.type = 'image/jpeg';
ctx.body = '233';//原本是一个buffer类型数据,这里简略
ctx.status = 200;
} else {
await ctx.cookies.set('temp', '123456', {maxAge: 99999});
ctx.type = 'image/jpeg';
ctx.body = '233';
ctx.status = 200;
}
} catch (e) {
console.log(e)
ctx.status = 400;
}
})
app
.use(router.routes())
.use(router.allowedMethods());
describe("test", () => {
it("1", done => {
client
.get('/')
.expect(200, (err, res) => {
if (err) {
done(err)
} else {
//第一请求是header里有set-cookie
cookie = res.header["set-cookie"][0];
console.log(cookie);
done()
}
})
});
it("2", done => {
client
.get('/')
.expect(200, done)
});
})
而我将content-type改为其他类型后,却能正确存储了。
content-type设置为image/jpeg 是有什么问题吗?
我查校过是有image/jpeg这个content-type的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不同的浏览器对于不同的content-type是有不一样的处理的,之前做过浏览器的定制化发现这些处理是由浏览器商自行定制的。所以我猜有可能你给的是image,他逻辑里认为不会有添加cookie这个事。换个浏览器试试?