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

Felte设置onSuccess后SvelteKit的Redirect失效,如何复用默认重定向逻辑?

问题解答:Felte onSuccess 覆盖默认重定向的处理方法

可以实现不用完全重写代码,复用Felte默认的重定向逻辑。

原因很直接:当你自定义onSuccess回调时,会直接覆盖Felte原本默认的成功处理逻辑——其中就包含了自动识别服务器返回的重定向响应并跳转的逻辑,所以删掉onSuccess后重定向能正常工作,加了就失效。

解决方法也简单:在你的自定义onSuccess里,先执行自己的业务逻辑(比如invalidate('app:auth')),再手动补上重定向的处理,这就相当于复用了默认逻辑的核心行为:

// SignUpForm.svelte
import { createForm } from '@felte/svelte';
import { goto } from '$app/navigation';

const { form, errors } = createForm({
  onSuccess: async (response) => {
    // 先执行你的自定义逻辑
    invalidate('app:auth');
    // 复用默认重定向逻辑:检查响应中的Location头并跳转
    if (response instanceof Response) {
      const redirectUrl = response.headers.get('Location');
      if (redirectUrl) {
        await goto(redirectUrl);
      }
    }
  },
  // 其他表单配置...
});

这样既保留了你需要的自定义操作,又能让SvelteKit actions里的重定向正常生效,不用自己从零搭建重定向逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:25:17