2012-03-12 3 views
6

JQuery를 사용하여 URL에서 정보를 가져와 비동기 적으로 내 페이지에 표시합니다. URL은 다른 도메인에서 가져온 것이므로 JSONP를 사용하여 데이터를 가져옵니다. 그건 잘 작동합니다.AJAX + cross-domain + jsonp를 사용하여 URL에 연결할 수 있는지 테스트 할 수 있습니까?

그러나 원격 URL이 다운되면 (한 번 발생) JQuery AJAX은 '성공'또는 '오류'기능을 호출하지 않으므로 내 페이지가 중단됩니다.

저는 JQuery 1.7을 사용하고 있습니다. "somePage는"최대 인 경우

$.ajax({ 
     type : "GET", 
     url : "http://otherdomain.com/somePage.html", 
     data : params, 
     dataType : "jsonp", 
     jsonp : "jsonp", 

     success : function (response, textS, xhr) { 
      alert("ok"); 
     }, 
     error : function (xmlHttpRequest, textStatus, errorThrown) { 
      alert("not ok " + errorThrown); 
     } 
    }); 

, 나는 메시지 "확인"을 참조하십시오처럼

내 코드 보인다. "somePage"에 연결할 수 없다면 아무것도 표시되지 않습니다.

"오류"기능을 어떻게 얻을 수 있는지에 대한 아이디어가 필요하십니까? 더 중요한 것은 도메인 간 URL에 도달 할 수 있는지 여부를 감지하는 방법입니다.

그게 가능합니까? ** [크로스 도메인 XMLHttpRequests를위한 감지 서버/사이트 지원?] (http://stackoverflow.com :

감사합니다,

+2

다소 관련 추가/questions/9433949/detect-server-site-support-for-cross-domain-xmlhttprequests) ** – hippietrail

답변

10

timeout

$.ajax({ 
     type : "GET", 
     url : "http://otherdomain.com/somePage.html", 
     data : params, 
     timeout:3000, 
     dataType : "jsonp", 
     jsonp : "jsonp", 

     success : function (response, textS, xhr) { 
      alert("ok"); 
     }, 
     error : function (xmlHttpRequest, textStatus, errorThrown) { 
      alert("not ok " + errorThrown); 
      if(textStatus==='timeout') 
       alert("request timed out"); 
     } 
    }); 

DEMO

+0

감사합니다! 나는 그것이 매우 간단했기 때문에 기쁘다. – jmend

+1

jsonp : "jsonp"는 무엇을 나타 냅니까? – suyash

관련 문제