在我的网站上,我目前正在使用 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)
});
});
基本上我了解到“需要授权标头”。共识似乎是这不能用 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 存储库检索所有标签,您可以这样做。 Bitbucket api 文档没有说明如何验证私有存储库(除非通过 CURL)。但如果您不使用 CURL,则需要添加标头。
希望对某人有帮助。 (如果您认为您可以更好地解释这一点,请随时编辑此答案)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)