2013-10-11 4 views
0

jQuery 1.7.1 및 firefox에서 ajax 함수에 문제가 있습니다. CMIS 서버에서 json을 요청하는 ajax 호출을 수행하고 있습니다. 크롬에서는 모든 것이 잘 작동합니다. 제가 예를 들어 보겠습니다 : 잘못된 모든 매력처럼 작동합니다jQuery ajax done 콜백이 firefox에서 이상하게 작동합니다.

function ajaxCall(url, requestType, isAsync, parameters, doneCb, failCb) { 
    $.ajax(url, { 
     type: requestType, 
     async: isAsync, 
     data: parameters 
    }).done(
     alert("test"), 
     // the following function gets not executed in firefox with async: true 
     function (result) { 
      doneCb(result); 
     }).fail(function (cause) { 
      failCb(cause); 
     }); 
} 

파이어 폭스에서 이상한 것은 내가 비동기를 사용하고있는 경우이다. async : true를 사용하는 경우 완료 콜백도 실행되고 "test"라는 메시지가 표시된 경고 팝업이 나타납니다. 그러나 경고가 실행 된 후에는 함수가 실행되지 않습니다. 내가 많이 봤 거든이 문제에 대한 해결책을 찾을 수 없습니다.

당신은 내 마지막 희망)

감사와 안부, 사이먼

나는 또한 옛날 방식을 시도했지만 결과는 여전히 동일

- 성공 함수가 호출되지 않습니다 async가 true이면 firefox.

$.ajax(url, { 
     type: requestType, 
     async: isAsync,    
     data: parameters, 
     success: function(result){ 
      doneCb(result); 
     }, 
     error: function(cause){ 
      failCb(cause); 
     } 
    }); 
+0

내 대답을 제거 같은

그것은 보일 것입니다. Jquery 1.7을 사용하는 것으로 나타났습니다. 이 조언은 Jquery 1.8 이상을위한 것입니다. 죄송합니다. – Liam

답변

1

그 코드는 alert을 가져 와서 done의 첫 번째 인수로 반환하는 값을 할당합니다. done() 메서드가 실제로 호출 될 때가 아니라 함수가 초기화 될 때 실행 중입니다.

.done( 
    function() { alert("test") }, 
    function() { ... } 
) 
+0

답장을 보내 주셔서 감사합니다. 내 원래 코드에는 경고가 없습니다. 나는 그저 거기에 놓아서 무슨 일이 일어나는지 보았다. 경고없이 코드를 실행하면 함수도 호출되지 않습니다. – Simon

관련 문제