2017-08-03 37 views
0

我在我的第一個Angular應用程序中遇到API獲取請求的問題。我試圖從服務器獲取所有項目,我已經獲得了正確的URL(它在郵遞員中工作,即使在我的瀏覽器中),我也從TFS上的帳戶生成了一個令牌,但是,我仍然得到當我運行應用程序時,401在控制檯中未經授權。任何幫助將會得到讚揚。我需要提供Windows身份驗證嗎? Angular甚至有可能嗎?在Angular中連接到TFS Api,401未授權

這是我試圖運行的方法。所有導入都在那裏,並且方法從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

嘗試編碼它與BASE64搭配btoa()但仍然無法正常工作。 – Nech

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

您可以參考以下文章來進一步排除故障: