[javascript] 자바스크립트를 활용한 비동기 로그인 기능 구현하기
웹 애플리케이션에서 사용자가 로그인할 때 페이지를 다시 로드하지 않고 비동기 방식으로 로그인 프로세스를 처리할 수 있습니다. 이를 통해 사용자에게 더 나은 경험을 제공할 수 있으며, 페이지 이동 없이 로그인 버튼을 클릭하고 로그인 결과를 즉시 확인할 수 있습니다.
XMLHttpRequest를 활용한 비동기 통신
XMLHttpRequest 객체를 사용하여 서버와의 비동기 통신을 수행할 수 있습니다.
const xhr = new XMLHttpRequest();
xhr.open('POST', '/login', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
// 로그인 성공 처리
} else {
// 로그인 실패 처리
}
}
};
xhr.send(JSON.stringify({ username: 'user', password: 'pass' }));
Fetch API를 활용한 비동기 통신
Fetch API를 사용하여 더 간편하고 강력한 방식으로 비동기 통신을 수행할 수 있습니다.
fetch('/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ username: 'user', password: 'pass' }),
})
.then(response => {
if (response.ok) {
// 로그인 성공 처리
} else {
// 로그인 실패 처리
}
})
.catch(error => {
// 네트워크 오류 처리
});
로그인 결과 처리
서버로부터 받은 응답을 기반으로 로그인 성공 또는 실패를 처리해야 합니다. 응답은 JSON 형식으로 받을 수 있으며, 이를 분석하여 적절한 메시지를 표시하거나 사용자를 다른 페이지로 리디렉션할 수 있습니다.
fetch('/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ username: 'user', password: 'pass' }),
})
.then(response => response.json())
.then(data => {
if (data.success) {
// 로그인 성공 처리
} else {
// 로그인 실패 처리
}
})
.catch(error => {
// 네트워크 오류 처리
});
이러한 방식으로 자바스크립트를 활용하여 비동기 로그인 기능을 구현할 수 있습니다. 사용자는 페이지를 재로드하지 않고도 즉시 로그인 결과를 확인할 수 있게 됩니다.