login.js 884 B

1234567891011121314151617181920212223242526
  1. const form = document.querySelector('#loginForm');
  2. const message = document.querySelector('#loginMessage');
  3. form.addEventListener('submit', async (event) => {
  4. event.preventDefault();
  5. message.textContent = '';
  6. message.className = 'login-message';
  7. const button = form.querySelector('button');
  8. button.disabled = true;
  9. try {
  10. const payload = Object.fromEntries(new FormData(form).entries());
  11. const response = await fetch('/api/login', {
  12. method: 'POST',
  13. headers: { 'Content-Type': 'application/json' },
  14. body: JSON.stringify(payload)
  15. });
  16. const data = await response.json().catch(() => ({}));
  17. if (!response.ok) throw new Error(data.error || '登录失败。');
  18. window.location.href = '/';
  19. } catch (error) {
  20. message.textContent = error.message;
  21. message.classList.add('error');
  22. } finally {
  23. button.disabled = false;
  24. }
  25. });