.done 콜백으로 인해 JQuery Ajax 성공이 두 번 발생했습니다.

코딩 바보

시나리오에서 ajax 요청을 중단 한 다음 사용자 응답 후 해당 요청을 다시 보내는 레거시 코드가 있습니다.

function resendLastAjaxRequest(ajaxRequest, ajaxSettings){
    if(ajaxSettings != undefined){
        $.ajax(ajaxSettings).done(function ( data ) {
            ajaxSettings.success(data);
        });
    }

이제 위의 코드는 요청에 대한 성공 핸들러를 두 번 실행하지만 1 년 이상 거기에 있었으며 아무도이를 만났습니다. jquery 버전 업데이트 때문입니까? 우리는 현재 2.0.3을 사용하고 있습니다. 정확히 언제 jquery가 업데이트되었는지 모르겠지만 이전 버전 done에서 success. 파헤 쳤지 만 그토록 오랫동안 효과가 있었던 이유를 찾지 못했습니다. 도와주세요.

최신 정보

$ .ajax의 성공과 .done () 메서드의 차이점은 무엇입니까

댓글이 포함되어 있습니다.

좋아요, 그것은 jQuery 1.8입니다 :) $ .ajax가 jQuery 1.5에서 약속을 반환하기 때문에 이것은 일관성 문제에 대한 간단한 대체입니다 (deferred 인터페이스 사용) : done () 대신 success (), fail () for error complete ()의 경우 () 및 always ()

즉, done이 호출되면 success명시 적으로 트리거 해야합니다. 이것이 그렇게 오랫동안 효과가 있었던 이유 일 수 있습니다. 그러나 이제 done이 실행되기 전에 success핸들러가 이미 호출되고 done콜백이 success핸들러를 다시 호출 합니다.

success한 번만 호출 되는 코드를 변경 / 수정하는 방법에 대한 제안 이 있습니까?

편집하다

ajaxSettings는 다음과 같습니다.

accepts: Object
async: true
cache: false
complete: function (request, status)
contentType: "application/x-www-form-urlencoded; charset=UTF-8"
contents: Object
converters: Object
crossDomain: false
dataTypes: Array[1]
error: function (request, status){flatOptions: Object global: true hasContent: false isLocal: false jsonp: "callback"
jsonpCallback: function (){var e=hn.pop()||x.expando+"_"+Yt++;return this[e]=!0,e}loadingdisplay: trueprocessData: true
responseFields: Object
success: function (htmlData) {type: "GET"
옥시 디자인

주석에서 말했듯이 이전에 jQuery 버전 이 1.5 미만 ( .done()구현 되지 않음 ) 이었으므로 성공 메서드가 콜백으로 호출 된 다음 .done()아무것도 중단하지 않고 콘솔에 오류가 발생합니다 (예 :) undefined is not a function. 따라서이 경우 콘솔에 오류가 발생하고 하나의 콜백 함수 만 호출됩니다.

jQuery 1.4.4 데모 : jsfiddle

콘솔에서 :

오류 1 개 : undefined is not a function(때문에 .done())

1 로그 : Object(호출 데이터)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

.done 콜백으로 인해 JQuery Ajax 성공이 두 번 발생했습니다.

분류에서Dev

성공적인 AJAX 호출 후 jQuery done () 콜백에 전달 된 인수 수정

분류에서Dev

콜백의 jQuery 바인딩이 자체적으로 발생합니다.

분류에서Dev

Angular .done () 애니메이션 콜백이 두 번 호출됩니까? (Angular2)

분류에서Dev

jquery ajax done 함수에 의해 생성 된 데이터를 변수로 반환

분류에서Dev

이미지를 두 번째 창으로 설정하는 동안 pyimage4 오류가 발생했습니다.

분류에서Dev

jquery ajax php로 인해 식별되지 않은 색인이 발생합니다.

분류에서Dev

PreviewKeyDown 이벤트가 두 번 발생했습니다.

분류에서Dev

Jquery Ajax는 응용 프로그램의 첫 번째로드에서 오류 콜백을 발생시킵니다.

분류에서Dev

HandlerThread.quit () 후 HandlerThread.start ()를 두 번째로 호출 할 때 IllegalThreadStateException이 발생했습니다.

분류에서Dev

서버의 배열로 인해 Ajax 성공 콜백 함수에서 이상한 추가 동작이 발생합니까?

분류에서Dev

Jquery Ajax URL 두 번

분류에서Dev

jQuery 콜백으로 인해 페이지로드가 지연됨

분류에서Dev

TextWatcher로 인해 충돌이 발생했습니다.

분류에서Dev

jQuery는 AJAX / API 데이터를 두 번 표시합니다.

분류에서Dev

JQuery는 JSONP에 대해 무작위로 생성 된 콜백 이름으로 무엇을합니까?

분류에서Dev

산술 연산으로 인해 오버플로 C #이 발생했습니다.

분류에서Dev

스레딩으로 인해 버튼 콜백은 한 번만 작동합니다.

분류에서Dev

jQuery 양식 유효성 검사로 인해 테두리 개요가 발생하지 않습니까?

분류에서Dev

jQuery 양식 유효성 검사로 인해 테두리 개요가 발생하지 않습니까?

분류에서Dev

중첩 된 jQuery Ajax-처리를 위해 첫 번째 ajax 응답 전역 변수 데이터를 두 번째 ajax로 전달

분류에서Dev

jQuery li 클릭 이벤트가 두 번 발생합니다.

분류에서Dev

<a>의 jQuery 클릭 이벤트가 두 번 발생합니다.

분류에서Dev

jQuery 클릭이 두 번 발생합니다.

분류에서Dev

Ajax 데이터를 html 테이블로 인쇄하는 동안 오류가 발생했습니다.

분류에서Dev

jquery 및 ajax 이미지를 두 번 업로드

분류에서Dev

jQuery ajax done () 여러 번 호출 됨

분류에서Dev

Jasny Bootstrap으로 이벤트가 두 번 발생합니다.

분류에서Dev

로그인하기 위해 백엔드에 두 번 로그인해야하는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    .done 콜백으로 인해 JQuery Ajax 성공이 두 번 발생했습니다.

  2. 2

    성공적인 AJAX 호출 후 jQuery done () 콜백에 전달 된 인수 수정

  3. 3

    콜백의 jQuery 바인딩이 자체적으로 발생합니다.

  4. 4

    Angular .done () 애니메이션 콜백이 두 번 호출됩니까? (Angular2)

  5. 5

    jquery ajax done 함수에 의해 생성 된 데이터를 변수로 반환

  6. 6

    이미지를 두 번째 창으로 설정하는 동안 pyimage4 오류가 발생했습니다.

  7. 7

    jquery ajax php로 인해 식별되지 않은 색인이 발생합니다.

  8. 8

    PreviewKeyDown 이벤트가 두 번 발생했습니다.

  9. 9

    Jquery Ajax는 응용 프로그램의 첫 번째로드에서 오류 콜백을 발생시킵니다.

  10. 10

    HandlerThread.quit () 후 HandlerThread.start ()를 두 번째로 호출 할 때 IllegalThreadStateException이 발생했습니다.

  11. 11

    서버의 배열로 인해 Ajax 성공 콜백 함수에서 이상한 추가 동작이 발생합니까?

  12. 12

    Jquery Ajax URL 두 번

  13. 13

    jQuery 콜백으로 인해 페이지로드가 지연됨

  14. 14

    TextWatcher로 인해 충돌이 발생했습니다.

  15. 15

    jQuery는 AJAX / API 데이터를 두 번 표시합니다.

  16. 16

    JQuery는 JSONP에 대해 무작위로 생성 된 콜백 이름으로 무엇을합니까?

  17. 17

    산술 연산으로 인해 오버플로 C #이 발생했습니다.

  18. 18

    스레딩으로 인해 버튼 콜백은 한 번만 작동합니다.

  19. 19

    jQuery 양식 유효성 검사로 인해 테두리 개요가 발생하지 않습니까?

  20. 20

    jQuery 양식 유효성 검사로 인해 테두리 개요가 발생하지 않습니까?

  21. 21

    중첩 된 jQuery Ajax-처리를 위해 첫 번째 ajax 응답 전역 변수 데이터를 두 번째 ajax로 전달

  22. 22

    jQuery li 클릭 이벤트가 두 번 발생합니다.

  23. 23

    <a>의 jQuery 클릭 이벤트가 두 번 발생합니다.

  24. 24

    jQuery 클릭이 두 번 발생합니다.

  25. 25

    Ajax 데이터를 html 테이블로 인쇄하는 동안 오류가 발생했습니다.

  26. 26

    jquery 및 ajax 이미지를 두 번 업로드

  27. 27

    jQuery ajax done () 여러 번 호출 됨

  28. 28

    Jasny Bootstrap으로 이벤트가 두 번 발생합니다.

  29. 29

    로그인하기 위해 백엔드에 두 번 로그인해야하는 이유는 무엇입니까?

뜨겁다태그

보관