2013-03-02 6 views
1

나는에서 데이터에 액세스 할 수 JSONP를 사용하는 것을 시도하고있다 :JSONP 콜백 함수가 호출되지 않는 이유는 무엇입니까?

https://github.com/users/jbranchaud/contributions_calendar_data

그러나, 나는 콜백 또는 성공의 기능 중 하나에서 발생하는 시도 솔루션 중 어느 것도 호출되지지고. Chrome/Firefox 검사 도구를 사용할 때 스크립트를보고 응답이 200OK이고 응답 텍스트에 위 URL의 데이터가 포함되어 있는지 확인할 수 있습니다. 그럼에도 불구하고 콜백 함수 나 성공 함수는 어느 시점에서도 호출되지 않습니다. 이 방법을 사용하는 방법에 대한 아이디어가 있습니까? 내가 페이지를로드 할 때

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
    <script type="text/javascript"> 
     function parseResults(results) { 
      console.log('hello function callback.'); 
     } 

     $.ajax({ 
      url: 'https://github.com/users/jbranchaud/contributions_calendar_data', 
      type: 'post', 
      dataType: 'jsonp', 
      jsonp: true, 
      jsonpCallback: 'parseResults', 
      success: function(data, textStatus, jqXHR) { 
       console.log('success_function'); 
       console.log(data); 
      }, 
      error: function() { 
       console.log('error with jsonp request'); 
      } 
     }); 
    </script> 

, 나는 콘솔의 'JSONP 요청과 오류'를 참조 때문에 오류가 아약스에있다 : 여기

는 점점 나의 가장 최근의 시도는이 실행하는 것입니다 의뢰. 이 요청이 성공하지 못하는 이유에 대한 아이디어?

+0

오류가 콘솔에있다, 당신이 오류 콜백을 추가하고이 parseResults 콘솔에 오류가 없었다 –

+0

여부라고 지 여부를 확인할 수 있습니다, 하지만 아약스 요청에 오류 콜백을 추가하면 내 오류 메시지가 출력됩니다 (업데이트 된 코드 참조). –

+0

라고 점점 – jbranchaud

답변

0

ajax 요청에서 'jsonp'속성을 false로 설정하십시오 (jsonp : false).

기본적으로 JQuery는 자동 함수 콜백 이름 (예 : JQuery1223 ... 34)을 생성합니다.

귀하의 경우 이미 jsonpCallback 함수 이름을 명시 적으로 설정해야합니다. 그래서 jsonp 속성을 false로 설정해야합니다. 코드는 다음과 같이해야한다 :

$.ajax({ 
     url: 'https://github.com/users/jbranchaud/contributions_calendar_data', 
     type: 'post', 
     dataType: 'jsonp', 
     jsonp: false, 
     jsonpCallback: 'parseResults', 
     success: function(data, textStatus, jqXHR) { 
      console.log('success_function'); 
      console.log(data); 
     }, 
     error: function() { 
      console.log('error with jsonp request'); 
     } 
    }); 
관련 문제