2012-03-20 4 views
0
var myurl="https://raw.github.com/currencybot/open-exchange-rates/master/latest.json"; 

    $.ajax(
    { 
    url:myurl, 
    type:"POST", 
    dataType:"JSONP", 
    success:function(myObj) 
     { 
     console.log(myObj); 
     } 
    }); 

속기 getJSON을 사용했지만 콘솔에서 "POST 요청 사용"오류가 발생합니다. 위의 코드를 사용하면 콘솔에 "Invalid Label"이 표시됩니다.json 응답을 가져올 수 없습니다.

답변

0

당신은 코드를 변경해야합니다,이 시도 :

$.post(
    myurl, 
    {}, 
    function(data){ 
    alert(data); 
    },'json' 
); 

변수 '데이터'는 JSON 객체입니다.

+0

감사하지만,이 didnt 한 일 .. –

+0

오류에 인용

var myurl="https://raw.github.com/currencybot/open-exchange-rates/master/latest.json"; $.getJSON( myurl, function(data) { //manipulate your json }); 

그러나 JSONP 요청에 대한

, 당신은

URL에 콜백 매개 변수가 있어야합니다 : ""NetworkError : 404 Not Found - https://raw.github.com/currencybot/open-exchange-rates/master/latest.json "" –

+0

당신은 그들에게 줄 필요가 없습니다 pty'{}' – Starx

0

크로스 도메인 JSONP는 AJAX가 아닙니다. XMLHttpRequest를 사용하지 않습니다. JavaScript 코드를로드하는 동적 스크립트 요소 일뿐입니다.

시도 :


var req = $.ajax({ 
    url : myurl, 
    dataType : "jsonp" 
}); 

req.success(function(myObj) { 
    console.log(myObj); 
}); 

req.error(function() { 
    console.log('some error occured'); 
}); 

나는 결국 서버가 "https://raw.github.com"JSONP를 지원하지 않습니다 생각합니다. 따라서이 데이터에 액세스하려면 서버에 프록시 엔드 포인트를 작성해야합니다. 기본적으로 자신의 서버에 엔드 포인트를 작성하여 어떤 방법 으로든 데이터를로드하고 (말풍선 등) 그것을 그대로 리턴합니다. 그런 다음 일반 AJAX를 사용할 수 있습니다. 희망은 도움이

+0

어떻게하면 코드가 바뀌어 작동합니까? –

+0

코드 편집 된 내용보기 –

+0

"잘못된 레이블" –

1

사용 $.getJSON(), 그것은 약식 기능과 매우 효율적이기도합니다. 문서 [here]

If the URL includes the string "callback=?" (or similar, as defined by the server-side API), the request is treated as JSONP instead.

관련 문제