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

 qxi7293860 发布于 2022-11-06 23:06
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的。

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

    2022-11-12 01:36 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有