英文:
Sveltekit - prevent form error 500 redirect
问题
在表单操作中,我抛出错误500,并在增强函数中处理它。但是之后它仍然重定向到错误页面。是否有办法阻止这种情况发生?
英文:
In form action I throw error 500, and handle it in enhance function.
BUT it still redirects to error page after it.
Is there a way to prevent this?
答案1
得分: 3
在表单操作中,您可以使用Sveltekit的fail
函数来返回错误到前端,而不是抛出错误:
import { fail } from '@sveltejs/kit';
// 在您的表单操作方法内部
if (!condition) {
return fail(500, { randomAttribute: 123 });
}
通过这样做,您可以轻松处理use:enhance
指令中的错误:
<form method="POST" use:enhance={() => {
return async ({ result }) => {
if (result.type === 'failure') {
// result.status 包含错误代码
// result.data 包含您在fail函数中传递的数据对象
}
};
}}>
</form>
英文:
In a form action, instead of throwing an error you can use Sveltekit's fail function to return an error to the frontend:
import { fail } from '@sveltejs/kit';
// inside your form action method
if (!condition) {
return fail(500, { randomAttribute: 123 });
}
By doing so, you can easily handle the error in the use:enhance
directive:
<form method="POST" use:enhance={() => {
return async ({ result }) => {
if (result.type === 'failure') {
// result.status contains the error code
// result.data contains the data object you passed in the fail function
}
};
}}>
</form>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论