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

SvelteKit +page.server.js中load函数无法设置Cookie问题

SvelteKit +page.server.js load函数中Cookie设置失败的解决方法

核心问题与修复步骤

  • 添加path参数(最常见原因)
    默认情况下,Cookie的path会被设置为当前页面的路由路径,导致Cookie仅在该路径下可见。要让Cookie在整个站点生效,需显式设置path: '/':

    export const load = ({ cookies }) => {
        cookies.set("username", "foo", {
            secure: false,
            maxAge: 60 * 60 * 24 * 7,
            path: '/'
        });
    };
    
  • 匹配开发环境的协议设置
    如果你的开发服务器启用了HTTPS(如通过vite dev --https启动),需将secure改为true——浏览器会拒绝在HTTPS环境下设置secure: false的Cookie。

  • 验证load函数是否执行
    可以通过返回调试数据确认函数正常运行:

    export const load = ({ cookies }) => {
        cookies.set("username", "foo", {
            secure: false,
            maxAge: 60 * 60 * 24 * 7,
            path: '/'
        });
        return {
            debug: "Load函数已执行"
        };
    };
    

    在对应的+page.svelte中渲染{$page.data.debug},确认函数确实被触发。

  • 检查浏览器Cookie面板
    打开开发者工具的Application面板,切换到Cookie列表的“All”视图,或检查当前页面路径下的Cookie,避免因路径过滤导致看不到已设置的Cookie。

内容的提问来源于stack exchange,提问作者hackerman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:33:23