소환사쇽쇽
2k
2021-07-29 09:34:59 작성 2021-07-29 09:37:37 수정됨
2
127

jquery ajax 사용시 success 콜백 함수의 status 파라미터 값이 달라질 수 있나요?


success 콜백 함수를 실행할 때 두번째 파라미터(status)가 'success'일 때만 실행하라는 조건문을 넣어둔 코드를 보고 의문이 생겼습니다.(부끄럽게도 그 전에는 콜백 함수의 인자가 2개 이상인 줄도 몰랐습니다...)

success: function (data, status) {

  if (status == 'success') {

    //실행 내용

  }

} 코드는 이런식으로 작성되어 있는데

Type: FunctionAnything data, String textStatus, jqXHR jqXHR )
A function to be called if the request succeeds. The function gets passed three arguments: The data returned from the server, formatted according to the dataType parameter or the dataFilter callback function, if specified; a string describing the status; and the jqXHR (in jQuery 1.4.x, XMLHttpRequest) object. As of jQuery 1.5the success setting can accept an array of functions. Each function will be called in turn. This is an Ajax Event.

jquery 문서의 ajax success 항목의 설명인데요. 결과 status를 넘겨준다는 것 외에는 달리 설명이 없네요.

status가 200, 성공일 때만 success 콜백 함수를 실행할 것이라 생각하는데 정확히 알 수 있을까요?



0
  • 답변 2

  • ghkdwls30
    2k
    2021-07-29 09:51:43

    초고수의 영역으로 나아가기위해서는 코드도 깔줄도 아셔야합니다.

    제이쿼리 소스를 까서 


    일단 성공시 2개가 아닌 3개를 리턴합니다.


    			// Success/Error
    			if ( isSuccess ) {
    				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
    			} else {
    				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
    			}


    그리고 아래와 같은 경우 성공입니다.


    // Determine if successful
    			isSuccess = status >= 200 && status < 300 || status === 304;


    초고수의 영역으로 나아가기위해서는 톰캣, 스프링등 유명한 라이브러리를 깔줄아는 분석할줄아는 실력을 기르셔야합니다.




  • 소환사쇽쇽
    2k
    2021-07-29 11:01:13

    ghkdwls30

    넵 감사합니다! 말씀하신대로 열어보니까 isSuccess가 true일 때 status가 200외 204, 304가 될 수 있고 그에 따라 statusText 값은 "nocentent", "notmodified"등 3가지가 될 수 있네요.


  • 로그인을 하시면 답변을 등록할 수 있습니다.