在我的网站上,我正在使用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)
});
});
答案 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,则需要添加标题。
希望有人帮助。 (如果您认为可以更好地解释这个问题,请随时编辑此答案。)