【发布时间】:2018-06-28 14:48:42
【问题描述】:
我正在编写一个 TFS 小部件(HTML 和 Javascript),当我将小部件添加到我的仪表板时,我已正确登录 TFS。 该小部件制作了一个简单的 GET API,例如:
https://{account}.VisualStudio.com/DefaultCollection/_apis[/{area}]/{resource}?api-version={version}
但是响应是未经授权的。 为什么我要再次验证我的身份?该小部件是从我的 TFS 仪表板启动的... 我不想再次输入凭据,事实上,如果我打开浏览器选项卡并将 API 粘贴到它可以工作的 URL 中...... 有办法解决这个问题吗?
!!!!更新: 我尝试了这段代码,但我看到总是未经授权(PS 从控制台我看到了令牌):
<!DOCTYPE html>
<html>
<head>
<script src="bower_components/vss-web-extension-sdk/lib/VSS.SDK.min.js">
</script>
<script>
"use strict";
VSS.init({
explicitNotifyLoaded: true,
usePlatformStyles: true
});
VSS.require(["VSS/Authentication/Services"],
function (VSS_Auth_Service) {
VSS.getAccessToken().then(function(token){
// Format the auth header
var authHeader = VSS_Auth_Service.authTokenManager.getAuthorizationHeader(token);
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
var fileData = this.responseText;
alert(fileData);
}
};
xhttp.open("GET", "https://........./_apis/build/builds?api-version=4.1", true);
xhttp.setRequestHeader('Authorization', authHeader);
console.log(authHeader);
xhttp.send();
// Add token as an Authorization header to your request
});
});
</script>
</head>
<body>
<div class="widget">
<h1 class="title">Builds</h1>
</div>
</body>
</html>
【问题讨论】:
标签: javascript html tfs