// Предполагаем, что у вас есть данные из формы, которые нужно передать на бэкенд
const formData = {
username: 'myUsername',
password: 'myPassword',
email: 'myEmail@example.com'
};
// Отправляем POST-запрос на URL вашего API
fetch('https://api.example.com/register', {
method: 'POST', // Указываем метод запроса
headers: {
'Content-Type': 'application/json' // Устанавливаем заголовок Content-Type для указания типа данных
},
body: JSON.stringify(formData) // Преобразуем данные в формат JSON и передаем в теле запроса
})
.then(response => {
if (!response.ok) {
throw new Error('Ошибка сети или сервера');
}
return response.json(); // Парсим ответ сервера в формате JSON
})
.then(data => {
console.log(data); // Обрабатываем полученные данные
})
.catch(error => {
console.error(error); // Обрабатываем ошибки
});
Пример выше отправляет POST-запрос на URL " https://api.example.com/register " с данными из формы регистрации в формате JSON в теле запроса. Заголовок "Content-Type" указывает на тип данных, который передается (в данном случае - JSON). Вы можете настроить параметры запроса (например, метод, заголовки, тело) в зависимости от требований вашего бэкенд-API. const formData = new FormData(document.querySelector('form'));
fetch('http: //example.com/api/register', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
И сразу все набросились отвечать с чатгпт... // константы
const
LOGIN = 'login',
PASSWORD = 'password'
// функция внури функционального компонента
const handlerLogin = useCallback((e: HandlerFormSubmit) => {
const formData = new FormData(e.target)
const map = new Map(formData)
const data = {
login: map.get(LOGIN),
password: map.get(PASSWORD),
}
dispatch({ type: 'RPC_SIGNIN_ACTION', data })
}, [])
// JSX
Form, как Input - обычные компоненты, ничего интересного. В компоненте Form дополнительно прописан e.preventDefault()
export async function signin({ login, password }) {
const url = new URL(`http://127.0.0.1:8000/auth/signin`)
const headers = new Headers({
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
})
const urlSearchParams = new URLSearchParams({
username: login,
password,
})
const options = {
method: 'POST',
cache: 'no-cache',
headers,
body: urlSearchParams,
};
try {
const request = await fetch(url.href, options)
const response = await request.json()
const {
token_type,
access_token,
} = response
jwt.setToken({
token_type,
access_token,
})
return response
} catch (e) {
return {
message: e.message,
}
}
}