2013-01-05 36 views
6

Tôi đang sử dụng github api cho một ứng dụng web nhỏ và tại một số thời điểm tôi cần phải nhận được link header cho the pagination.Github API nhận tiêu đề liên kết với ajax

Mục tiêu cuối cùng là nhận tổng số lần commit trên mỗi kho lưu trữ, tôi thấy rằng python script và đã cố gắng điều chỉnh nó thành JavaScript.

getData = $.getJSON('https://api.github.com/repos/'+user+'/'+repo+'/commits?callback=?', function (commits){ 

    console.log(getData.getResponseHeader('link')) 
    // will return null 

    console.log(getData.getAllResponseHeaders('link')) 
    // will return an empty string 

    console.log(commits) 
    // will successfuly return my json 
}); 

userrepo lần lượt là tên người dùng và tên repo mình

Đó là cho một trang Github vì vậy tôi chỉ có thể sử dụng JavaScript.

Trả lời

5

Xem các tài liệu GitHub API cho việc sử dụng callbacks JSONP: http://developer.github.com/v3/#json-p-callbacks

Về cơ bản, nếu bạn đang sử dụng JSONP gọi API, thì bạn sẽ không có được một tiêu đề Link, nhưng thay vào đó bạn sẽ nhận được thông tin tương tự trong tài liệu JSON phản hồi (tức là phần thân). Dưới đây là ví dụ từ các tài liệu API, chú ý Link tài sản trong đối tượng meta

$ curl https://api.github.com?callback=foo 

foo({ 
    "meta": { 
    "status": 200, 
    "X-RateLimit-Limit": "5000", 
    "X-RateLimit-Remaining": "4966", 
    "Link": [ // pagination headers and other links 
     ["https://api.github.com?page=2", {"rel": "next"}] 
    ] 
    }, 
    "data": { 
    // the data 
    } 
}) 
+0

đó là hoàn hảo, nhờ –

0

Chữ ký cho chức năng bạn vượt qua với phương pháp getJSON là Type: Chức năng (dữ liệu PlainObject, String textStatus, jqXHR jqXHR)

Để truy cập vào tiêu đề liên kết bạn nên sử dụng các đối tượng jqXHR thay vì đối tượng dữ liệu:

getData = $.getJSON(
    'https://api.github.com/repos/'+user+'/'+repo+'/commits?callback=?', 
    function (data, textStatus, jqXHR){ 

     console.log(jqXHR.getResponseHeader('Link')) 
     // will return the Header Link 

     console.log(commits) 
     // will successfuly return my json 
    }); 
Các vấn đề liên quan