2010-01-20 9 views
0

표준 jquery getJson 요청을 사용하여 json 피드를 요청하고 있습니다. json URL은 내 도메인에서 호스팅되지 않습니다.Jquery getJSON 요청에서 데이터를 읽을 수 없습니다.

$.getJSON('myfeed.json?jsoncallback=?', 

function(data){ 
console.log(data); 
}) 

그러나 Firebug를 사용하면 콘솔에 기록 된 데이터가 표시되지 않습니다. 하지만 Firebug의 Net 패널을 보면 json 데이터가로드 된 것을 볼 수 있습니다.

누구나 알고 계십니까?

샘플 JSON

[{ 
    "person": { 
     "name": "Bob", 
    } 
}, 
{ 
    "person": { 
     "name": "Dave", 
    } 
}, 
{ 
    "person": { 
     "name": "Jim", 
    } 
} 
}] 

답변

1

있는지 확인하십시오 : 콘솔은 모든에

  1. . 주소 표시 줄에 javascript:console.log('test')을 입력하여 문제가 없는지 확인하십시오. 때때로 콘솔을 제대로 실행하려면 페이지를 새로 고침해야합니다.
  2. 실제로 다른 도메인의 피드는 다른 도메인의 피드에 액세스 할 때 필요한 JSON-P 용으로 제작되었습니다. 실제로 어떤 피드에 액세스하려고합니까?
+0

서버에서 JSON-P를 처리 할 수 ​​있는지 어떻게 알 수 있습니까? – mindwire22

+0

다른 피드가 JSON-P 형식으로 작성된 경우에만 작동합니다. 전통적인 JSON이라면 그렇게 할 수 없습니다. 공개로 예정된 피드로 작업하고 있습니까? – Matchu

+0

서버에서 200 백을 얻었습니다. 방화 광에서 요청 된 URL을 검사하면 모든 데이터 개체가있는 JSON 탭을 볼 수 있습니다. 그래서 이것을 볼 수는 있겠지만 jQuery에서 ojbect에 액세스 할 수 없다는 것을 알 수 있습니다. 아마도 jsonp가 아니기 때문일 수 있습니다. 그거야? – mindwire22

0

콘텐츠 유형 헤더가 text/json 인 경우를 제외하고 getJSON 메서드는 콘텐츠를 구문 분석하지 않는다고 생각합니다. 당신은 JSON 데이터가 아니라 서버가 적절한 콘텐츠 형식을 반환도 형성되어 있는지 확인이

$.get("http://MYURL", function(data){ 
    var jsondata = eval("("+data+")") 
} 
0

뭔가를 서버 측 헤더를 변경하거나 아마 할 수 있습니다. console.log에 중단 점을 두십시오. 콜백이 어떤 이유로 실행되지 않기 때문에 아마도 이것은 실행되지 않습니다.

+0

잘 형성되었고 반환되는 콘텐츠 유형은 application/json입니다. charset = utf-8 – mindwire22

관련 문제