为何我将content-type设置为image/jpeg后无法存储cookie?

发布于 2022-09-03 08:49:54 字数 1591 浏览 8 评论 0

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 技术交流群。

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

发布评论

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

评论(1

灼痛 2022-09-10 08:49:54

不同的浏览器对于不同的content-type是有不一样的处理的,之前做过浏览器的定制化发现这些处理是由浏览器商自行定制的。所以我猜有可能你给的是image,他逻辑里认为不会有添加cookie这个事。换个浏览器试试?

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