在我的网站上,我目前正在使用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)
});
});发布于 2012-11-29 03:13:53
基本上,我了解到"Authorization header是必需的“。而共识似乎是,这不能在jquery中使用JSONP请求来完成。我真的不知道为什么。
但是,我已经能够通过编写一个通过php file_get_contents调用传递授权头的php脚本来达到预期的效果。然后,正如上面的注释所建议的那样,我可以使用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存储库中检索所有的标签,这就是你要做的。Bitbucket api文档除了通过CURL之外,并没有说明如何认证到私有存储库。但是,如果不使用CURL,则需要添加头部。
希望这能帮助到一些人。(如果您认为您可以更好地解释这一点,请随时编辑此答案)。
https://stackoverflow.com/questions/13557490
复制相似问题