2013-05-12 2 views
5

내가 일하는 회사는 개인 정보 취급 방침 및 이용 약관에 대한 API를 가지고 있습니다. 개인 정보 보호 정책과 이용 약관에 대한 두 개의 서로 다른 페이지를 만들어야합니다. 나는 이것에 아주 새롭, 나는 이렇게 가까운 인 것처럼 느낀다.외부 URL에서 JSON 데이터를 가져 오는 방법은 무엇입니까?

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8" /> 
<title>Privacy Policy</title> 
</head> 
<body> 
    <div id="placeholder"></div> 
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 
    <script> 
    $.getJSON('http://externalurl.com', function(external) { 
     var output="<ul>"; 
     for (var i in external.code.offset) { 
      output+="<li>" + external.html + "</li>"; 
     } 

     output+="</ul>"; 
     document.getElementById("placeholder").innerHTML=output; 
    }); 
    </script> 
</body> 
</html> 

그냥 빈 페이지를 반환하는 것 :

{"code":200,"status":"Ok","data": 
    {"offset":0,"limit":20,"total":2,"target":"html_page","results":[ 
     { 
      "id":"6", 
      "title":"Privacy Policy", 
      "description":"Privacy Policy", 
      "html":"HTML CODE BLAH BLAH", 
      "tags":["privacy"] 
     }, 
     { 
      "id":"66", 
      "title":"License and TOU", 
      "description":"Terms of Use", 
      "html":"HTML CODE BLAH BLAH", 
      "tags":["terms"] 
     }] 
    } 
} 

여기에 내가 사용하고 코드입니다 : 여기

은 JSON이 (일부 편집과를 익명화하는) 수신하는 방식이다 . 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

0

내가 그것을해야한다고 생각 :

$.getJSON('http://externalurl.com', function(external) { 
    var output="<ul>"; 
    for (var i = 0; i < external.data.results.length; i++) { 
     output+="<li>" + external.data.results[i].html + "</li>"; 
    } 

    output+="</ul>"; 
    document.getElementById("placeholder").innerHTML=output; 
}); 

을 그래서 먼저 잘못된 개체를 반복하는, 그것은 external.data.results하지 external.code.offset입니다. 둘째, for (var i in array)으로 배열을 반복 할 수 없습니다.

3
$.getJSON('http://externalurl.com', function(external) { 
     var output = $("<ul />"); 

     $.each(external.data.results, function(i, result) { 
      $('<li />', {text : result.html}).appendTo(output); 
     }); 

     $('#placeholder').html(output); 
}); 
관련 문제