redirectDocument
这是一个围绕 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
作为第二个参数。
redirectDocument(path, 301);
redirectDocument(path, 303);
redirectDocument(path, {
headers: {
"Set-Cookie": await commitSession(session),
},
});