2014-04-14 2 views
0

사과를 JSON 데이터를 가져올 수 없습니다하지만 난 다음 URL에서 데이터를 얻을 수있을 수없는 것 :은 자주 묻는 질문 생겼는지 질문에 대한 URL에서

$(document).ready(function() { 
    $.ajax({ 
     url: "http://www.strava.com/stream/segments/860503&callback=?", 
     dataType: "json", 
     success: function(data) { 
      $(document.body).append(data.latlng); 
     } 
    }); 
}); 
: 나는 다음과 같은 시도 http://www.strava.com/stream/segments/860503

그리고 :

$(document).ready(function() { 
    $.getJSON("http://www.strava.com/stream/segments/860503&callback=?", function(data) { 
     $(document.body).append(data.latlng); 
    }); 
)}; 

하지만 어떤 행운을 가지고 있지 않다. 나는 'json'과 'jsonp'로 주변을 둘러 보았고, '& callback =?' URL에 대한 정보뿐만 아니라 SO에서 제안 된 다른 정보도 제공되지만 아무 소용이 없습니다.

도움을 주시면 대단히 감사하겠습니다.

+0

http://www.strava.com/stream/segments/860503?callback=abc& –

+1

특히,이 자습서를보십시오 "다른 도메인에서 JSON 데이터 객체로드"부분 : http://www.jquery4u.com/json/jsonp-examples/ – SsjCosty

답변

0

시도해 보셨습니까? URL 끝에 ? 대신 cb의 차이가 있습니다.

$(document).ready(function() { 
    $.getJSON("http://www.strava.com/stream/segments/860503?callback=cb", function(data) { 
     $(document.body).append(data.latlng); 
    }); 
)}; 
0

해당 URL은 JSONP를 지원하지 않습니다. 또한 Access-Control-Allow-Origin 응답 헤더를 통해 Cross Origin Resource Sharing (CORS)에 대한 지원을 제공하지 않으므로 직접 ajax를 통해 호출 할 수 없습니다.

JSONP 지원에 대한 요구 사항은 서버가 JSON을 JavaScript 객체 또는 함수의 인수에 배열로 전달하여 콜백 이름을 함수로 출력해야한다는 것입니다. 예를 들어

myCallback({ ...... }); 

가능한 해결책은 상호 기원 서버 요청에 대한 서버의 문제가 아니다 동일한 도메인에서 서버 측 스크립트 통해 AJAX 요청은 프록시이다.

0

"http://www.strava.com/stream/segments/860503"의 데이터에는 콜백이 없습니다. 교차 도메인 용으로 만들어지지 않았습니다. 귀하의 스크립트가 동일한 서버를 사용하는 경우 : 서버의 PHP에 대한 액세스 권한이 있습니다 echo $_GET['callback'].'('.json_encode($return) .')'; [php] cURL을 사용해보십시오.

관련 문제