2016-09-23 2 views
2

저는 angular2를 처음 사용하고 있습니다. 문제를 해결하려고하는 지식이 거의 없지만 다른 사이트에서 서비스에 액세스하려고 시도했지만 크로스 사이트 요청에 관한 문제가 발생했습니다. 이건 내 angular2 서비스이며, 나는이Angular2 CORS 발행물

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(); 
} 

같은 것을 시도했습니다 내가

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. 

을하려고 무엇이든이 문제를 가지고이 내 구성 요소입니다

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

그래 내가 알고, 그것을 작동하지만 : 에만 목적을 테스트하기 위해 당신은 당신의 API를 백엔드에 CORS를 시뮬레이션이 크롬 확장을 사용할 수 있습니다 서비스하지만 내용이 좋지 않습니다. 어떤 사용자가 다른 사용자 프로필을 볼 수있는 계층 구조를 상상해보십시오. 200을받지 못하면 요청이 성공하지만 콘텐츠가 달라야합니다. 내 경우에는이 문제가 아닙니다. 액세스 권한이 있든 없든 상관없이 동일한 내용을 200 개나 항상 얻을 수 있습니다. – Remus