redirectDocument

これは、redirect をラップしたもので、クライアント側のナビゲーションではなく、ドキュメントレベルのリダイレクトを新しい場所にトリガーします。

これは、同じドメイン上に Remix アプリと非 Remix アプリが隣接しており、Remix アプリから非 Remix アプリにリダイレクトする必要がある場合に最も役立ちます。

import { redirectDocument } from "@remix-run/node"; // または cloudflare/deno
 
export const action = async () => {
  const userSession = await getUserSessionOrWhatever();
 
  if (!userSession) {
    // `/login` は別の非 Remix アプリであると仮定
    return redirectDocument("/login");
  }
 
  return json({ ok: true });
};

redirect と同様に、ステータスコードまたは ResponseInit を 2 番目のパラメータとして受け付けます。

redirectDocument(path, 301);
redirectDocument(path, 303);
redirectDocument(path, {
  headers: {
    "Set-Cookie": await commitSession(session),
  },
});