You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Egg.js的ctx.redirect跳转时浏览器不发送Referer的原因及实现需求咨询

Egg.js的ctx.redirect跳转时浏览器不发送Referer的原因及实现需求咨询

嘿,各位大佬,我碰到个困扰的问题,想跟大家请教下:

我用Egg.js启动了两个服务,分别对应test1.com和test2.com。其中test1的服务里通过ctx.redirect来跳转到test2的地址,代码大概是这样的:

// test1 egg
router.get('/render', controller.home.render);

async render() {
    const { ctx } = this;
    ctx.redirect('https://test2.moomoo.com');
}

而test2的服务里会打印请求的Referer,同时渲染页面:

// test2 egg
async render() {
    const { ctx } = this;
    console.log('ctx.header.referer', ctx.header.referer);
    await this.ctx.render('/index.html', {
      data: 'test2',
    });
}

结果我发现,用这种方式跳转后,浏览器完全不会发送Referer——不管是后端ctx.header.referer还是前端的document.referrer都是空值。但如果我在前端用window.location来跳转的话,Referer就能正常显示test1的地址。

我特别想搞明白这是为什么?另外有没有办法实现用ctx.redirect跳转时,让test2能获取到来自test1的Referer呢?

备注:内容来源于stack exchange,提问作者candise xxx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 16:14:51