2016-09-23 84 views
2

我是新來的angular2,並公平我有很少的知識,我嘗試修復,但我遇到了一些關於跨站點請求的問題,試圖從另一個應用程序訪問服務,但我有這樣的問題,無論我嘗試做Angular2 CORS問題

XMLHttpRequest cannot load https://hr/Team/EditEmployeeInfo.aspx. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:54396' is therefore not allowed access. The response had HTTP status code 401. 

這是我angular2服務,我已經試過這樣的事情

getUserHrtbProfile(userId): Promise<any> {    
     const headers = new Headers(); 
     headers.append('Access-Control-Allow-Headers', 'Content-Type'); 
     headers.append('Access-Control-Allow-Methods', 'GET, PUT, POST, DELET'); 
     headers.append('Access-Control-Allow-Origin', '*'); 

     var apiUri: string = "https://hrtb/Team/EditEmployeeInfo.aspx?emplid={0}&Menu=InfoEmployee&T=0".replace("{0}", userId); 
     return this.http.get(apiUri, headers).map(result => result.json()).toPromise(); 
} 

,這是我的組件

this.bannerService.getUserHrtbProfile(this.userId).then(hrtbJson => { 
    this.hasHrtbAccess = hrtbJson.HasHrtbAccess; 
    this.hrtbProfileUrl = hrtbJson.HrtbProfileUrl; 
}).catch(err => { 
    this.hasHrtbAccess = false; 
}); 

我已經在我的問題上搜索解決方案,但仍找不到適合我需求的解決方案。

Angular 2 http request with Access-Control-Allow-Origin set to *

但最重要的,這是一個angular2問題,我需要解決?或者事實上,正如我讀過的,它應該由暴露API的團隊處理?
謝謝大家。

回答

0

您正在嘗試在其他域上發出請求,這是您無法在此處解決的問題。嘗試在您支持的代碼上提出請求,這將解決您的問題。

+0

是的,我知道,它的工作原理,但不是因爲它應該的,這意味着我不知道其他球隊如何做該服務但內容不正確。想象一下,一些用戶可以查看其他用戶配置文件的層次結構,如果我不能,我應該收到200,因爲即使我沒有授權請求是成功的,但內容應該是不同的,在我的情況下,這不是問題我無論我是否有權訪問某些配置文件,都將獲得200和始終相同的內容。 – Remus