2017-08-25 12 views
1

これで、私のリポジトリ内のすべての問題のリストを取得しようとしています。問題は、私がどのようにレスポンスヘッダーにアクセスし、他のページを取得するのか分からないことです。私が今までに持っているものは、JS内のGithub APIですべての問題(複数ページ)を一覧表示

var outhtml; 
var repositories; 
$.getJSON(uploadURL, function(json){ 
    repositories = json; 
     outputPageContent(); 
}); 

function outputPageContent() { 
    if(repositories.length == 0) { outhtml = outhtml + '<p>No repos!</p></div>'; } 
    else { 
     //console.log(repositories); 
     outhtml = outhtml + '<p><strong>Repos List:</strong></p> <ul>'; 
     $.each(repositories, function(index) { 
      console.log(repositories[index]); 
      outhtml = outhtml + '<li><a href="'+repositories[index].html_url+'" target="_blank">'+repositories[index].title + '</a></li>'; 
     }); 
     outhtml = outhtml + '</ul></div>'; 
    } 
    $('#ghapidata').html(outhtml); 
} 

ですが、これは私に最初のページを取得します。前に問題を解決するためにページ分割を行ったことがありますが、それはPythonで行われました。 js/jqueryを使ってどうすればいいですか?

+0

あなたは 'uploadURL'と' json'のコンテンツを提供することができますか? – styfle

+0

uploadURLは、私のレポからの問題のGitHub APIのURL +アクセストークンです。返されたJSONはすべての問題です(レスポンスの最初のページにあります)。https://developer.github.com/v3/issues/#list-issues-for-a-repository – Acoustic77

+0

'consoleの出力は何ですか? log(json) '? – styfle

答えて

1

私はそれを理解しました。ヘッダーは実際のAjax呼び出しで返されます。だから私は、変数に代入してから使用するために必要な「getResponseHeaderを()」

は、基本的には:

var issues =[]; 
var ajsponse; 

function buildIssueList(githubURL){ 
    ajsponse = $.ajax({ 
     dataType: "json", 
     type: 'GET', 
     url: githubURL, 
      success: function(data){ 
       $.merge(issues, data); 
       var link = ajsponse.getResponseHeader("Link"); 
       if (link.indexOf("next") !== -1) { 
         githubURL=link.substring(link.indexOf("<")+1,link.indexOf(">")); 
         buildIssueList(githubURL); 
       } 
       else{ 
        printcompiled(issues); 
       } 
      } 
     }); 
} 
関連する問題