12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- const form = document.getElementById('loginForm')
- function Login() {
- if (!form.checkValidity()) {
- form.classList.add('was-validated')
- return
- }
- const formData = {
- username: document.getElementById('username').value,
- password: document.getElementById('password').value,
- }
- fetch('/api/auth/login', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json',
- },
- body: JSON.stringify(formData),
- })
- .then(response => response.json())
- .then(data => {
- if (data.success) {
- const urlParams = new URLSearchParams(window.location.search);
- const redirectUrl = urlParams.get('next');
- if (redirectUrl) {
- window.location.href = redirectUrl;
- } else {
- window.location.href = `${window.location.protocol}//${window.location.host}/`
- }
- } else {
- showAlert('danger', data.error || '登录失败,请检查用户名和密码')
- }
- })
- .catch(error => {
- console.error('登录请求失败:', error)
- showAlert('danger', '网络错误,请稍后重试')
- })
- }
- function showAlert(type, message) {
- const alertContainer = document.getElementById('alert-container')
- const alertDiv = document.createElement('div')
- alertDiv.className = `alert alert-${type} alert-dismissible fade show`
- alertDiv.setAttribute('role', 'alert')
- alertDiv.innerHTML = `
- ${message}
- <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
- `
- alertContainer.innerHTML = ''
- alertContainer.appendChild(alertDiv)
- }
- form.addEventListener('keyup', function (event) {
- if (event.key === 'Enter') {
- event.preventDefault();
- Login();
- }
- })
|