2017-08-25 22 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 + access令牌,用于解决我的回购问题。返回的JSON包含所有问题(在响应的第一页)https://developer.github.com/v3/issues/#list-issues-for-a-repository – Acoustic77

+0

'console的输出是什么?日志(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); 
       } 
      } 
     }); 
} 
相关问题