AJAX day1
AJAX 밖으로 값 보내기
AJAX 밖으로 값 보내기
나는 종종 JS에서 AJAX를 사용하다보면 AJAX에서 받은 값을 AJAX 밖에서 사용하고 싶은데 밖으로 나오지 않는 경우가 있었다. 인터넷을 검색하는 도중 그 원인을 알 수 있었는데 코드를 확인해보자.
let str;
$.ajax({
url: "/search/"+i,
data : {id : i},
type: "get",
dataType: "text",
success : function(response){
str = response;
}
})
console.log(str);
이런 코드를 작성하여 ajax에서 받은 데이터를 콘솔에 찍어주니 undefined를 마주하였다…
이럴 때는
let str;
function callData(){
let m = 0;
$.ajax({
url: "/search/"+i,
data : {id : i},
async :false, // 비동기를 위해 넣어준다.
type: "get",
dataType: "text",
success : function(response){
m = response;
console.log(m)
}
})
return m;
}
str = callData()
console.log(str);
위와 같이 AJAX를 함수로 변환하고 async :false와 리턴을 활용하면 쉽데 AJAX 밖으로 데이터를 가져올 수 있다.