2013-08-28 2 views
0

알림 서버가 다운되었을 때 UI를 처리하는 기능을 테스트하고 있습니다. 로딩 코드는 실제로 정상적으로 작동하지만 서버에 도달 할 수없는 경우에는 콜백이 실행되지 않습니다. 당신이 더 콜백이 발생하지 않습니다 (요청이 실패 할 수 있도록 내가 의도적으로 로컬 호스트를 사용)를 실행하지만, 경우 요청이 실패합니다 http://jsfiddle.net/xykKf/2/호스트가 응답하지 않을 때 교차 도메인 AJAX 요청에서 오류 감지

$(document).ready(function() { 
    $.ajax({ 
     url: "http://localhost:51437/Scripts/framework.js", 
     dataType: "script", 
     error: handleError, 
     success: function() { 
      if (!("OFrame" in window)) { 
       handleError(); 
      } else { 
       alert("success"); 
      } 
     }    
    }); 

    function handleError() { 
     alert("error"); 
    } 
}); 

: 여기

는 로딩 코드와 jsFiddle입니다. 응답을 반환하지 않는 상호 도메인 요청을 효과적으로 처리하려면 어떻게해야합니까?

답변

0

이것은 의도 한 동작입니다.

참고 :이 처리기는 도메인 간 스크립트 및 도메인 간 JSONP 요청을 위해 호출되지 않습니다.

도메인 간 스크립트 및 교차 도메인 jsonp 요청에 대해 오류 콜백이 트리거되지 않습니다.

일관되게 작동하는 임시 해결책이 있다면 jQuery가 이미 구현했을 것입니다.

+0

setTimeout을 사용하여 오류를 처리하고 성공 콜백에서 시간 초과를 취소하는 것이 좋습니다? – Parker

+0

콘솔에서 오류를 막지는 못하더라도 작동 할 수 있습니다. 또한 setTimeout을 얼마나 오래 기다려야합니까? –

+0

@Parker'$ .ajax'에는 이미 적절한 'timeout' 옵션이 있습니다. – apsillers

관련 문제