<script>
var ajax = new XMLHttpRequest();
ajax.onreadystatechange = function () {
if(this.readyState == 4) {
if(this.status == 200) {
console.log(ajax.responseText);
console.log(ajax.responseXML);
}
}
};
ajax.open("GET/POST", "호출 URL", true);
ajax.send();
</script>
<script>
fetch("URL 링크")
.then((response) => {
if(!response.ok) {
throw new Error("400 또는 500 에러 발생!!!");
}
return response.json();
})
.then((result) => {
console.log(result);
})
.catch(() => {
console.log("에러 발생 !!!");
});
</script>
XMLHttpRequest는 자바스크립트가 Ajax 방식으로 통신할 때 사용하는 객체.
XMLHttpRequest 객체는 Ajax 통신 시 전송 방식, 경로, 서버로 전송한 data 등 전송 정보를 담는 역할.
실제 서버와의 통신은 브라우저의 Ajax 엔진에서 수행.
직접 자바스크립트로 Ajax를 프로그래밍할 경우 브라우저 별로 통신 방식이 달라 코드가 복잡해짐.
httpRequest의 속성 값
- readyState
- status
<script>
let response = await fetch(url);
if(response.ok) {
let json = await response.json();
} else {
alert("에러 발생 : " + response.status);
}
</script>
<script>
// option 생략하면 default는 GET 방식
fetch("https://jsonplaceholder.typicode.com/posts/1")
//() => : 함수라는 의미(() 안엔 인자, 화살표 뒤엔 호출할 내용
// .then((response) => response.json())
// .then((data) => console.log(data.userId));
.then((response) => response.text())
.then((data) => console.log(data));
</script>
<script>
let config = { // options 객체 생성
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(user),
};
fetch("3-09.jsp", config)
.then((response) => response.json()) // 응답을 JSON 형식으로 받아옴
.then((data) => resultView(data));
</script>
<script>
let btn = document.querySelector("#listBtn");
btn.addEventListener("click", function () {
// TODO : 4-01csv.jsp 비동기 호출
fetch("4-01csv.jsp")
// 4-01csv.jsp이 text/plain 즉, 문자열로 데이터를 전송하기 때문에 문자열로 받기
.then((response) => response.text())
.then((data) => makeList(data));
});
</script>
<script>
let btn = document.querySelector("#listBtn");
btn.addEventListener("click", function () {
// TODO : 4-02.xml 비동기 호출
fetch("4-02xml.jsp")
// xml도 가져올 때는 text형식으로 가져옴
.then((response) => response.text())
.then((data) => makeList(data));
});
</script>
<script>
let btn = document.querySelector("#listBtn");
btn.addEventListener("click", function () {
// TODO : 4-03.json 비동기 호출
fetch("4-03json.jsp")
.then((response) => response.json()) // json 형식으로 받아오기
.then((data) => makeList(data));
});
</script>