Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
Tags
- 되돌리기
- 테스팅
- Quartz 라이브러리
- 깃허브 토큰 발급
- CI/CD
- submit 기본동작
- 타임리프 참조 오류
- dbeaver 백업/복구
- .ppk
- firstChild
- 배포 자동화
- 배열 call by value
- deploy.sh
- AWS 생성
- 채팅 프로젝트
- git 폴더 모으기
- Jenkins
- Node Property
- EL1021E
- 깃허브 연동
- document 함수
- 환경변수
- css 리셋
- 클래스 참조
- 소프트웨어
- reset
- 깃허브 토큰 생성
- 자바 swing 프로젝트
- Quartz dependency
- ..gitignore
Archives
- Today
- Total
TY blog
XMLHttpRequest / jQuery 데이터 요청, 응답 본문
1. XMLHttpRequest 객체사용
현재 대부분의 주요 웹 브라우저는 서버에 데이터를 요청하기 위한 XMLHttpRequest 객체를 내장하고 있습니다.
XMLHttpRequest 객체는 서버로부터 XML 데이터를 전송받아 처리하는 데 사용됩니다.
[로그인 소스 예문]
var xhr = new XMLHttpRequest();
xhr.open("POST", "/loginOk.json", true); /* 1. 요청방식, 요청 URL, false : 동기 , true : 비동기 */
xhr.setRequestHeader("Content-Type", 'application/x-www-form-urlencoded');
xhr.send("id="+id+"&password="+pass); /* 2. 요청 URL 로 넘길 데이터 */
xhr.onreadystatechange = function (event) {
if (xhr.readyState == 4) { /* 3. readyState */
if (xhr.status == 200) { /* 4. status */
if(xhr.responseText == "noUser" || xhr.responseText == "fail"){ /* 5. responseText */
alert("아이디 또는 비밀번호가 일치하지 않습니다.");
document.getElementById("id").value = "";
document.getElementById("pass").value = "";
return false;
}else {
location.href="/";
}
} else {
console.log("로그인 AJAX 통신실패");
}
}
};
1-2. readyState
이 값은 객체의 현재 상태( onreadystatechange 함수가 상태를 체크 )에 따라 다음과 같은 주기로 변화합니다.
readyState | |
0 - XMLHttpRequest.UNSET | XMLHttpRequest 객체가 생성된 상태 |
1 - XMLHttpRequest.OPENED | open() 메소드가 성공적으로 실행된 상태 |
2 - XMLHttpRequest.HEADERS_RECIEVED | send() 메소드를 실행 했지만 아직 데이터를 받지 못한 상태 |
3 - XMLHttpRequest.LOADING | 데이터의 일부만을 받은 상태 |
4 - XMLHttpRequest.DONE | 모든 데이터를 받은 상태 |
XMLHttpRequest.DONE 상태를 체크, status 속성이 200일때 ( 요청이 정상완료 ) 될 때 원하는 코드를 작성해 수행합니다.
1-3. responseText
요청후에 응답받을 데이터
2. jQuery
위에 소스코드를 jQuery ajax로 작성
[로그인 jQuery 소스 예문]
/* Jquery 필요시 추가 */
// <script src="https://code.jquery.com/jquery-3.4.1.js"></script>
$.ajax({
url : "/loginOk.json",
type : 'post',
data : {
id : id,
password : pass,
},
success : function(data) {
if(data == "noUser" || data == "fail"){
alert("아이디 또는 비밀번호가 일치하지 않습니다.");
document.getElementById("id").value = "";
document.getElementById("pass").value = "";
return false;
} else {
location.href="/";
}
},
error : function() {
console.log("로그인 AJAX 통신실패");
}
});
jQuery 의 Ajax 호출은 async 값을 안 넣을 시 async : true 비동기 방식으로 동작합니다.
'프로그래밍 언어 > JavaScript' 카테고리의 다른 글
HTML 요소 선택 JS 함수 정리 (0) | 2023.12.31 |
---|---|
Form submit 기본흐름 제어 (0) | 2023.11.11 |
onfocus, onblur 이벤트 (0) | 2023.09.22 |
JavaScript 이미지 규격 체크 onload 함수 (0) | 2023.03.13 |
js 정규식 문자열 변환 (1) | 2023.01.28 |
Comments