我在第一个Angular应用程序中遇到了API get请求的问题。我正在尝试从服务器获取所有项目,我有正确的URL(它在postman中工作,甚至在我的浏览器中),我也在TFS上从我的帐户生成了一个令牌,但是,我仍然得到一个我在运行应用程序时在控制台中未经授权401。任何帮助都会得到赞赏。我需要提供Windows身份验证吗?它甚至可以在Angular上使用吗?
这是我正在尝试运行的方法。所有导入都在那里,并且从OnInit调用该方法。
getProjects(): void {
const authHeader = new HttpHeaders();
authHeader.append('Authorization', 'Bearer ' +
`perfectly valid token here`);
this.http.get('perfectly valid server url here/_apis/projects?api-
version=1.0', {headers: authHeader}).subscribe(data => {
this.results = data['results'];
});
}
答案 0 :(得分:0)
我使用基本身份验证工作了。
getProjects(): void {
const authHeader = new HttpHeaders();
authHeader.append('Authorization', 'Basic ' +
base64('Username:Password'));
this.http.get('perfectly valid server url here/_apis/projects?api-
version=1.0', {headers: authHeader}).subscribe(data => {
this.results = data['results'];
});
}
答案 1 :(得分:0)
您可以尝试提供Windows身份验证,它可以在Angular上使用。并在项目中启用CORS。
然后检查下面的Cross-origin resource sharing (CORS)示例,在代码中添加授权:
$( document ).ready(function() {
$.ajax({
url: 'https://fabrikam.visualstudio.com/defaultcollection/_apis/projects?api-version=1.0',
dataType: 'json',
headers: {
'Authorization': 'Basic ' + btoa("" + ":" + myPatToken)
}
}).done(function( results ) {
console.log( results.value[0].id + " " + results.value[0].name );
});
});
您可以参考这些文章进行进一步的故障排除: