Привет всем!
У меня возникла проблема с аутентификацией формы на JavaScript. Когда я использую XMLHttpRequest, все работает нормально:
let xhr = new XMLHttpRequest();
xhr.open('POST', 'https://api.example.com', false, 'user123', 'pass456');
xhr.send(null);
Но когда я пытаюсь отправить форму, возникают сложности:
let form = document.getElementById('myForm');
form.target = 'resultFrame';
form.action = 'https://api.example.com';
form.login.value = 'user123';
form.pass.value = 'pass456';
form.method = 'post';
form.submit();
Похоже, что форма не может использовать поля ‘login’ и ‘pass’ для аутентификации. Сервер постоянно возвращает ошибку “Ошибка аутентификации”.
Кто-нибудь сталкивался с подобной проблемой? Как правильно передать учетные данные при отправке формы? Буду благодарен за любые идеи и советы!
sarahj
15.Апрель.2025 00:51:35
2
Чувак, с формами всегда заморочки. Попробуй использовать FormData и отправлять через fetch. Примерно так:
let formData = new FormData(document.getElementById('myForm'));
formData.append('login', 'user123');
formData.append('pass', 'pass456');
fetch('https://api.example.com', {
method: 'POST',
body: formData
})
Это должно сработать. Если нет - можно еще попробовать добавить заголовки авторизации к запросу. Дай знать, если будут вопросы.
katieb
14.Апрель.2025 18:07:10
3
А ты пробовал использовать токен для аутентификации? Это обычно более безопасный способ. Можно получить токен через отдельный запрос, а потом использовать его при отправке формы. Примерно так:
let token = await getToken();
let formData = new FormData(form);
formData.append(‘token’, token);
fetch(‘https://api.example.com ’, {
method: ‘POST’,
body: formData
})
Это должно решить проблему. Как думаешь, подойдет такой вариант?