Перейти к содержимому

React Router / Remix

Loader’ы и action’ы React Router 7 выполняются на сервере, поэтому их вызовы fetch проходят через прокси без контекста браузера — та же ситуация, что и с SSR Next.js. Прокси нужен заголовок x-test-rcrd-id на этих серверных запросах, чтобы отнести их к правильной сессии записи.

Каждый loader/action получает входящий request. Прочитайте из него заголовок с id записи и пробросьте его в любом серверном fetch:

import { RECORDING_ID_HEADER } from 'test-proxy-recorder';
import type { LoaderFunctionArgs } from 'react-router';
export async function loader({ request }: LoaderFunctionArgs) {
const headers: Record<string, string> = {};
const id = request.headers.get(RECORDING_ID_HEADER); // 'x-test-rcrd-id'
if (id) headers[RECORDING_ID_HEADER] = id;
// Point the API base at the proxy in dev/test only.
const res = await fetch('http://localhost:8100/api/data', { headers });
return res.json();
}

Направьте базовый URL вашего бэкенда на прокси (http://localhost:8100) только в dev/test, ровно как в ручной настройке. Запросы на стороне браузера по-прежнему обрабатываются механизмом HAR из playwrightProxy.before().

Когда адаптер выйдет, это сведётся к одному импорту хелпера — следите за прогрессом в дорожной карте.