[jQuery] JSONP 요청의 취소 및 타임아웃 처리 방법

웹 애플리케이션을 개발할 때, 외부 API로의 요청은 일반적으로 JSONP(JSON with Padding)로 이루어집니다. 이를 통해 다른 도메인으로부터 데이터를 안전하게 가져올 수 있습니다. 그러나 때로는 요청을 취소하거나 타임아웃 처리를 해야 하는 상황이 발생할 수 있습니다. 여기서는 jQuery를 이용하여 JSONP 요청을 취소하고 타임아웃하는 방법을 알아보겠습니다.

1. JSONP 요청 취소하기

jQuery를 사용하여 JSONP 요청을 취소하려면 $.ajax() 함수를 사용합니다. 이 함수를 호출한 뒤에는 abort() 메서드를 사용하여 요청을 취소할 수 있습니다.

예를 들어, 다음과 같이 JSONP 요청을 보낸 후 2초 후에 이를 취소할 수 있습니다.

var request = $.ajax({
  url: "https://example.com/api/data",
  dataType: "jsonp",
  success: function(response) {
    // 요청이 성공했을 때의 처리 로직
  }
});

setTimeout(function() {
  request.abort();
  console.log("요청이 취소되었습니다.");
}, 2000);

2. JSONP 요청 시 타임아웃 설정하기

때로는 JSONP 요청에 타임아웃을 설정해야 하는 경우가 있습니다. 이를 위해 timeout 옵션을 사용하여 요청의 최대 대기 시간을 설정할 수 있습니다.

예를 들어, 다음과 같이 JSONP 요청에 5초의 타임아웃을 설정할 수 있습니다.

$.ajax({
  url: "https://example.com/api/data",
  dataType: "jsonp",
  timeout: 5000,
  success: function(response) {
    // 요청이 성공했을 때의 처리 로직
  },
  error: function(xhr, status, error) {
    console.log("요청이 타임아웃되었습니다.");
  }
});

요약

jQuery를 이용하여 JSONP 요청을 취소하거나 타임아웃 처리하는 방법을 살펴보았습니다. 이를 통해 안정적인 외부 데이터 요청 처리를 구현할 수 있습니다.

이와 관련된 자세한 정보는 jQuery 공식 문서를 참고하시기 바랍니다.