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
相关产品推荐
相关产品推荐

