SvelteKit 表单操作和重定向

Nau*_*ika 5 sveltekit

在我的 SvelteKit 应用程序中,我有一个使用表单操作的表单:

<form action="/login?/logout" method="POST">
    <button type="submit">Logout</button>
</form>
Run Code Online (Sandbox Code Playgroud)

在此操作中,最后一步是重定向:

export const actions: Actions = {
    logout: async (event) => {
        // ...
        throw redirect(307, '/login');
    }
}
Run Code Online (Sandbox Code Playgroud)

这按我的预期进行。更新到 SvelteKit 1.0.0 后,行为发生了变化:该操作被调用(像以前一样),但在重定向时出现以下错误:

错误:未找到名称为“default”的操作

有什么想法需要改变或者应该如何做?

Tho*_*lle 15

状态码307不会改变请求的方法和正文,因此浏览器会尝试POST /login

您可以将状态代码更改为,303而不是将方法更改为GET

export const actions: Actions = {
    logout: async (event) => {
        // ...
        throw redirect(303, '/login');
    }
}
Run Code Online (Sandbox Code Playgroud)