jquery
jQuery - $.ajax()
자바스크립트 AJAX 는 그 과정이 약간 까다로울 수 있는데, 이 역시 제이쿼리가 훨씬 수월하게 해줄 수 있습니다. 그리고 AJAX 는 요청이 다른 도메인이라면 데이터를 정상적으로 받아올 수 없습니다.
다음 형식으로 사용할 수 있습니다.
객체 배열에는 다음 표를 사용합니다.
POST 와 GET 요청시 함께 사용할 수 있는 메소드는 .done(), .fail(), .always() 이며 버전 1.5부터 사용할 수 있습니다. 요청이 종료될 때 호출하는 함수입니다.
GET 으로 url 과 객체 배열을 이용하여 결과 값을 받아오는 예제입니다.
객체 배열로 POST 로 전송해서 값을 받아옵니다.
다음 형식으로 사용할 수 있습니다.
// url 문자열로 데이터를 요청
$.ajax(url);
// url 과 설정 객체 배열로 요청
$.ajax(url [, options]);
// 설정 객체 배열로 요청
$.ajax({options});
객체 배열에는 다음 표를 사용합니다.
프로퍼티 | 설 명 |
---|---|
url | 전송될 URL |
Options | 서버에서 데이터를 전송하기 위한 설정옵션 $.get(), $.post(), $.getJSON() 기능을 한꺼번에 관리 Options 에는 다음 값으로 설정
|
POST 와 GET 요청시 함께 사용할 수 있는 메소드는 .done(), .fail(), .always() 이며 버전 1.5부터 사용할 수 있습니다. 요청이 종료될 때 호출하는 함수입니다.
메소드 | 설 명 |
---|---|
.done() | 요청 성공시 실행할 콜백 함수 |
.fail() | 요청 실패시 실행할 콜백 함수 |
.always() | 요청 완료/성공시 실행할 콜백 함수 |
GET 요청
GET 으로 url 에 요청만 보냅니다.$.ajax("example.php?name=하보니&age=20&job=IT");
GET 으로 url 과 객체 배열을 이용하여 결과 값을 받아오는 예제입니다.
<script>
$(function(){
$("button").click(function(){
$.ajax("test.php?name=하보니", {
success: function(data){
$("#user").html(data);
}
});
});
});
</script>
<button>ajax 받아오기</button>
<div id="user"></div>
POST 요청
POST 로 요청하려면 객체 배열을 이용해야 합니다. data 형식에는 'name=하보니&age=20&job=IT' 로 요청하거나 객체 배열 {'name': '하보니', 'age': '20', 'job': 'IT'} 로 데이터를 보낼 수 있습니다.<script>
$(function(){
$("button").click(function(){
$.ajax("test.php", {
type: 'POST',
// name=하보니&age=20&job=IT 로 전송해도 동일
data: {'name': '하보니', 'age': '20', 'job': 'IT'},
success: function(data){
$("#user").html(data);
}
});
});
});
</script>
<button>ajax 받아오기</button>
<div id="user"></div>
객체 배열로 POST 로 전송해서 값을 받아옵니다.
$.ajax({
url: 'test.php',
type: 'POST',
data: 'name=하보니&age=20&job=IT',
success: function(data){
$("#user").html(data);
}
});
Header 추가
제이쿼리에서 헤더를 전송할 수 있는 방법은 의외로 간단합니다. beforeSend 를 이용해 헤더를 추가합니다.$.ajax('example.php',{
beforeSend : function(xhr) {
xhr.setRequestHeader("userid", "habonyphp");
xhr.setRequestHeader(
"Content-type","application/x-www-form-urlencoded"
);
},
error: function(xhr, status, error){
alert(error);
},
success : function(data){
alert(data);
}
});
.done(), .fail(), .always()
.done(), .fail(), .always() 메소드는 요청이 이미 완료되면 즉시 콜백 함수가 시작됩니다.$.ajax('test.php')
.done(function(){
console.log("요청이 성공하였습니다.");
})
.fail(function(){
console.log("알수없는 에러가 발생하였습니다.");
})
.always(function(){
console.log("응답이 완료하였습니다.");
});
0 댓글