[jquery] .success ()와 .complete ()의 차이점은 무엇입니까?

jQuery를 1.5로, 모든 jQuery의 AJAX 방법은 반환 jqXHR제공하는 객체 .error(), .success().complete()방법을.

.success()과 의 차이점은 무엇입니까 .complete()?



답변

.success()웹 서버가 200 OKHTTP 헤더로 응답하는 경우에만 호출됩니다 -기본적으로 모든 것이 정상일 때.

그러나 .complete()것이다 항상 아약스 호출이 성공 또는 아니었다면 상관없이 전화를받을 – 아마 오류를 출력하고 오류 반환 – 아직 불려가는 .complete을 ().

그것이 당신에게 중요한 경우- .complete()호출 된 후에 호출 될 것을 언급 할 가치가 .success()있습니다.


답변

success()서버가 200 상태 코드를 반환 complete()할 때 호출되고, 결과에 관계없이 요청이 완료되면 항상 호출됩니다.


답변

success()서버가 200 상태 코드를 반환 할 때 호출 complete()되며 success(). 그리고 나는 약간의 차이를 본다.

success()당신은 당신이 사용 얻을 XML 응답 문자열을 얻을 수 $.ajax()와 세트 dataType:xml
그러나에 complete()당신이 읽혀질 XML 문서의 문자열 형식을 얻을 수 있습니다 사용을

$.ajax({
url:'??',
dataType:'xml',
oncomplete: function(data,status){
console.log(data.responseText);
}
})


답변

success()호출 될 때 서버가 반환 success status code, 같은 : 200, 201

complete()요청이 완료되면 항상 호출됩니다. (상당히 서버의 성공 / 오류 응답입니다.)


그래서,

  • 때이 success서버에서 응답 : complete()success()이라고합니다.
  • 때이 error서버에서 응답 : complete()error()이라고합니다.

어떤 목적을 위해 당신은 사용할 수 있습니다 complete()에서 가정 : beforeSend()당신이 보여 loader image, 그리고에 complete(), 당신은 숨길 수 있습니다 loader image.


답변