我可以使用ajax和jquery访问我的私有bitbucket存储库吗?

时间:2012-11-26 01:25:41

标签: jquery ajax bitbucket

在我的网站上,我正在使用jquery从我在bitbucket.org上托管的一个存储库生成一个标签列表。但为了做到这一点,我已将存储库公之于众。我宁愿把它保密。

我是否可以通过这种方式允许站点访问我的存储库,同时仍然保持存储库的私有性。

代码看起来像这样(在这种形式下,它将在所有标签的控制台中生成一个列表)。

$.ajax({
        url:"https://api.bitbucket.org/1.0/repositories/jeffreycwitt/publicrepository/tags",
        dataType: "jsonp",
        crossDomain: true,
        success: function (returndata){
           $.each(returndata, function(key, value){
               console.log(key)
    });
});

1 个答案:

答案 0 :(得分:3)

基本上我已经了解到需要“授权标头”。并且似乎在jquery中使用JSONP请求无法做到这一点。我真的不知道为什么。

但是我已经能够通过编写一个php脚本来实现所需的结果,该脚本通过php file_get_contents调用来传递授权头。然后,正如上面的评论所建议的,我可以使用ajax脚本来加载所需数据。 php脚本如下所示:

context = stream_context_create(array(
'http' => array(
    'header' => "Authorization: Basic " . base64_encode("$username:$password")
)
));

// Make the request 
$json = file_get_contents($url, false, $context);

//parse data
//turn json data into an array
$obj_a = json_decode($json, true);

//get all keys of array
$tags = array_keys($obj_a);

因此,如果有人想要从私有bitbucket存储库中检索所有标记,那么就是这样做的。除了通过CURL之外,Bitbucket api文档没有说明如何在私有存储库中进行身份验证。但是,如果您不使用CURL,则需要添加标题。

希望有人帮助。 (如果您认为可以更好地解释这个问题,请随时编辑此答案。)