2011-05-11 2 views
0

다음 코드를 사용하여 JSONP 형식의 데이터를 검색하고 있습니다. 데이터가 반환되지 않으면이를 사용해야하므로 오류를 플래그 할 수 있습니다. jQuery의 ajax()를 사용했지만 항상 404 페이지가 성공으로 반환되므로 오류 처리를 위해 Google 코드에서 jquery-jsonp jQuery 플러그인을 사용해야합니다.이 JSONP 피드에 "정의되지 않은"오류가 계속 표시되는 이유는 무엇입니까?

jQuery ajax (jsonp) ignores a timeout and doesn't fire the error event의 예제 코드를 빌 렸습니다.하지만 다른 서버에서 MIME 유형 "application/json"으로 보내지는 JSON에서 작동하지 않을 수 있습니다.

[{ "제목": "내 타이틀"}]

사람이 문제를 발견 할 수 여기에

$(function(){ 
    var jsonFeed = "http://othersite.com/feed.json"; 

    $.jsonp({ 
     url: jsonFeed, 
     dataType: "jsonp", 
     timeout: 5000, 
     success: function(data, status){ 
      $.each(data.items, function(i,item){ 
       console.log("Title: " + item.title); 

       if (i == 9) return false; 
      }); 
     }, 
     error: function(XHR, textStatus, errorThrown){ 
      console.log("Error Status: " + textStatus); 
      console.log("Error Thrown: " + errorThrown); 
     } 
    }); 
}); 

는 내 JSON의 예입니다?

+1

서버에서 응답으로 표시 한 것은 JSONP가 아니라 JSON입니다. JSONP의 경우'methodName ([{ "title": "My Title"}])'methodName'을 인수로 전달해야합니다. 이를 위해 서버는이 프로토콜을 지원해야합니다. 원격 서버가 지원하는 것이 확실합니까? –

+0

당신이 설명한 것은 내가 가지고있는 문제입니다. http://wordpress.org/extend/plugins/feed-json/을 사용하고 있으며? callback = methodName을 추가하지 않았습니다. 자, 어떻게해야하고 위의 각()에서 데이터로 무언가를 할 수 있습니까? – Zoolander

답변

1

"othersite.com"은 실제로 JSONP를 지원합니까? JSON은 클라이언트가 JSONP로 변환 할 수 없습니다. 서버는 콜백 함수로 내용을 래핑하는 것을 지원해야합니다.

+0

예, WordPress 플러그인 피드 JSON을 사용하고 있습니다. http://wordpress.org/extend/plugins/feed-json/ – Zoolander

+2

URL이 http://othersite.com/feed.json?callback=인지 확인하십시오. ? –

+0

이것이 문제라고 생각합니다 (콜백 = 사용 안 함). 이제 데이터가 콜백()으로 래핑되었으므로 item.title을 어떻게 검색합니까? – Zoolander

관련 문제