2011-03-22 5 views
2

크로스 도메인 호출에서 $ .ajax 호출을 사용할 때 jQuery의 ajaxError 글로벌 처리기가 실행되는 데 문제가 있습니다. 화재를 일으킬 수있는 방법이 있습니까?

다음은 빠른 & 더티 테스트 (So how does $.ajaxError work?에서 수정)를 포함했습니다. 실제로 글로벌 AJAX 이벤트는 전역 적으로 true로 설정된 경우에도 실행되지 않습니다. $ .ajax를 $ ('result')로 변환하면 정상적으로 작동하지만 원하는 것은 아닙니다.

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <title>jQuery Sandbox</title> 
    </head> 
    <body> 
    <div class="trigger">Trigger</div> 
    <div class="result"></div> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(function() { 
     $(document).ajaxError(function (e, xhr, settings, exception) { 
      alert(I broke); 
     }); 

     $('.trigger').click(function() { 
      $.ajax({ 
      type: "GET", 
      global: true, 
      url: 'http://localhost/error', 
      success: function(data){ 
       alert('ftw'); 
      }, 
      dataType: "jsonp", 
      }); 
     }); 
     }); 
    </script> 
    </body> 
</html> 

어떤 도움을 주셔서 감사합니다.

답변

0

는 는 XHR을 사용하지 않는 여기 jQuery ajax

일부 Ajax 요청의 유형과 같은 JSONP와 도메인 간 GET 요청을 읽기; 이 경우 XMLHttpRequest 및 textStatus 매개 변수가 콜백에 전달 된 경우 은 정의되지 않습니다.

더 나은

크로스 도메인 호출

+0

아아 대한 curl를 사용하는 내가 바보 왜냐하면, 그것은이다. 글로벌 핸들러 문서에서 italicly가 말한 비트를 읽지 않았습니까? "참고 : 전역 이벤트의 값에 관계없이 전역 이벤트는 도메인 간 스크립트 또는 JSONP 요청에 대해 실행되지 않습니다." – dochead