Как аутентифицировать форму с помощью JavaScript?

Привет всем!

У меня возникла проблема с аутентификацией формы на 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’ для аутентификации. Сервер постоянно возвращает ошибку “Ошибка аутентификации”.

Кто-нибудь сталкивался с подобной проблемой? Как правильно передать учетные данные при отправке формы? Буду благодарен за любые идеи и советы!

Чувак, с формами всегда заморочки. Попробуй использовать 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
})

Это должно сработать. Если нет - можно еще попробовать добавить заголовки авторизации к запросу. Дай знать, если будут вопросы.

А ты пробовал использовать токен для аутентификации? Это обычно более безопасный способ. Можно получить токен через отдельный запрос, а потом использовать его при отправке формы. Примерно так:

let token = await getToken();
let formData = new FormData(form);
formData.append(‘token’, token);

fetch(‘https://api.example.com’, {
method: ‘POST’,
body: formData
})

Это должно решить проблему. Как думаешь, подойдет такой вариант?