这是 redirect 的一个小包装器,它将触发文档级重定向到新位置,而不是客户端导航。
redirect
当您在同一个域中有一个 Remix 应用程序与一个非 Remix 应用程序相邻,并且需要从 Remix 应用程序重定向到非 Remix 应用程序时,此功能非常有用:
import { redirectDocument } from "@remix-run/node"; // or cloudflare/deno export const action = async () => { const userSession = await getUserSessionOrWhatever(); if (!userSession) { // Assuming `/login` is a separate non-Remix app return redirectDocument("/login"); } return json({ ok: true });};
就像 redirect 一样,它接受状态代码或 ResponseInit 作为第二个参数:
ResponseInit
redirectDocument(path, 301);redirectDocument(path, 303);
redirectDocument(path, { headers: { "Set-Cookie": await commitSession(session), },});