簡體   English   中英

連接到Angular中的TFS Api,未授權401

[英]Connecting to TFS Api in Angular, 401 unauthorized

我在第一個Angular應用中遇到了API獲取請求的問題。 我正在嘗試從服務器獲取所有項目,我具有正確的url(即使在郵遞員中也可以在我的瀏覽器中使用),我也從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'];
    });
  }

我已經使用基本身份驗證來工作了。

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'];
    });
  }

您可以嘗試提供Windows身份驗證,它在Angular上可用。 並在項目中啟用CORS。

然后,檢查下面的跨域資源共享(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 );
    });
});

您可以參考這些文章以進行進一步的故障排除:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM