Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用ajax和jquery访问我的私有bitbucket存储库吗?_Jquery_Ajax_Bitbucket - Fatal编程技术网

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

我可以使用ajax和jquery访问我的私有bitbucket存储库吗?,jquery,ajax,bitbucket,Jquery,Ajax,Bitbucket,在我的网站上,我目前正在使用jquery从bitbucket.org上托管的一个存储库生成一个标记列表。但为了做到这一点,我必须公开存储库。我宁愿保密 对于我来说,是否可以允许站点以这种方式访问我的respository,同时保持存储库的私有性 代码如下所示(在这种形式中,它将在控制台中生成所有标记的列表) 基本上,我已经了解到“需要一个授权头”,并且一致认为jquery中的JSONP请求无法实现这一点。我真的不知道为什么 但是通过编写一个php脚本,通过phpfile\u get\u cont

在我的网站上,我目前正在使用jquery从bitbucket.org上托管的一个存储库生成一个标记列表。但为了做到这一点,我必须公开存储库。我宁愿保密

对于我来说,是否可以允许站点以这种方式访问我的respository,同时保持存储库的私有性

代码如下所示(在这种形式中,它将在控制台中生成所有标记的列表)


基本上,我已经了解到“需要一个授权头”,并且一致认为jquery中的JSONP请求无法实现这一点。我真的不知道为什么

但是通过编写一个php脚本,通过php
file\u get\u 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,则需要添加标题


希望这能帮助别人。(如果您认为您能更好地解释这一点,请随意编辑此答案)。

基本上,我已经了解到“需要授权头”。大家一致认为,jquery中的JSONP请求无法做到这一点。我真的不知道为什么

但是通过编写一个php脚本,通过php
file\u get\u 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,则需要添加标题

希望这能帮助别人。(如果您认为可以更好地解释这一点,请随时编辑此答案)。

您还可以使用进行身份验证,以避免暴露您的帐户密码:

const username = 'your-username'; // USERNAME, not email
const appPassword = 'app-pass';
const repoOwner = 'you-or-your-team';
const repository = 'repository-name';

$.ajax({
    url: `https://api.bitbucket.org/1.0/repositories/${repoOwner}/${repository}/tags`,
    headers: {
        Authorization: 'Basic ' + btoa(`${username}:${appPassword}`)
    },
    success: console.log,
    error: d => console.log(d.responseText),
});
您还可以使用进行身份验证,以避免暴露您的帐户密码:

const username = 'your-username'; // USERNAME, not email
const appPassword = 'app-pass';
const repoOwner = 'you-or-your-team';
const repository = 'repository-name';

$.ajax({
    url: `https://api.bitbucket.org/1.0/repositories/${repoOwner}/${repository}/tags`,
    headers: {
        Authorization: 'Basic ' + btoa(`${username}:${appPassword}`)
    },
    success: console.log,
    error: d => console.log(d.responseText),
});

您必须使用身份验证。您可以在服务器端文件中这样做,以保持您的详细信息的私密性。那么,我将不得不放弃我的javascript方法,是吗?我是用php编写的,是否需要通过某个版本的curl和php访问api?还是有更简单的方法?(我想我以前试过这个,结果卡住了:()你需要修改你的JS,这样调用就可以通过你的PHP代理。我很难想象这会是如何工作的——你觉得你有时间可以给我举个例子吗?我从来没有真正使用过API,所以只是猜测一下。你必须使用身份验证。你可以在服务器端文件中这样做,以保持你的身份tails private。我必须放弃我的javascript方法,是吗?我是用php编写的,我需要通过某个版本的curl和php访问api吗?还是有一种更简单的方法?(我想我以前尝试过这个方法,但被卡住了:()你可以修改你的JS,这样调用就可以通过你的PHP代理。我很难想象这会是怎样的——你觉得有时间的时候你能给我举个例子吗?我从来没有真正使用过API,所以只是猜测一下。