export async function post({ request }) и хочу получить данные из хедеров реквеста. обращаюсь к request.headers и вижу нормальный объект: {
accept: '*/*',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7',
connection: 'keep-alive',
'content-length': '12',
'content-type': 'text/plain;charset=UTF-8',
host: 'localhost:3000',
origin: 'http://localhost:3000',
referer: 'http://localhost:3000/',
'sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="97", "Chromium";v="97"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36'
} но если пытаюсь получить свойсво по например ключу referer (request.headers.referer) то получаю undefined
Подтяни event и попробуй event.request.headers.get('referer')
Да спасибо, через get все работает:
Воспользуюсь моментом, и поинтересуюсь) Почему в нижеприведенном коде не срабатывает ни переадрессация, ни отображение ошибки?.. // routes/login.svelte <script lang="ts"> export let error; </script> <h1>Login</h1> <form method="post" enctype="application/x-www-form-urlencoded"> <input type="text" name="name" /> <input type="password" name="password" /> {#if error}<p>{error}</p>{/if} <button type="submit">Login</button> </form> ------------------------------------ // routes/login.ts import * as cookie from 'cookie'; export async function post({ request }) { const user = new URLSearchParams(await request.text()); const username = user.get('name'); const password = user.get('password'); if (!(username === 'test' && password === "test")) { return { status: 400, headers: { "Content-Type": "application/x-www-form-urlencoded", }, body: { error: "Not valid name or password"} } } return { status: 303, headers: { locaiton:'/', "Content-Type": "application/x-www-form-urlencoded", "set-cookie": [cookie.serialize("authenticated", true, { httpOnly: true, sameSite: true, maxAge: 60 * 60 * 24 * 7, path: '/' })], }, } }
Обсуждают сегодня