2017-03-14 1 views
0

에 API를 호출합니다.Angular2 : 브라우저가 나는 내 웹 애플리케이션은 nodejs 백엔드 브라우저에서 전화를하고있다 <code>mysite.com</code></p> <p>에서 angular2의 웹 애플리케이션을 제공 하위 도메인

현재로서는 mysite.com/api/을 사용하여 API를 호출합니다. 시스템 아키텍처상의 이유로

, 나는 하위 도메인을 사용하여, 다른 방법으로 API를 호출하고자 :

가 어떻게이 출처 간 문제를 제거 할 수

api.mysite.com/ 
?

+0

구성'api.mysite.com'을'액세스 제어 - 허용 - Origin' 응답 헤더와 다른'액세스-Control 키를 보내 * '당신의 시나리오에서 필요할 수도있는 응답 헤더. https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS – sideshowbarker

+0

을 참조하십시오. 이는 xhr 요청이 아닌 이미지 또는 기타 정적 리소스에만 작동합니다. 그리고 우리는 클라이언트 측이 아니라 서버 측 코러스 이슈에 대해서 말하고 있습니다. –

+0

'api.mysite.com'에서 설정을 할 수 없다면 프록시를 사용하지 않고 "교차 출처 문제"를 제거 할 수 없습니다 http://stackoverflow.com/questions/20035101/no-access-control-allow-origin-header-is-present-on-the-requested-resource/42744707#42744707. – sideshowbarker

답변

2

사용 여기를 살펴 JSONP : Jsonp을 :

import { JsonP } from '@angular/http"; 
@Injectable() 
export class dataService{ 
     constructor(jsonp:Jsonp) { 

     } 

     getData(){ 
     let url = 'http://api.mysite.com&c=JSONP_CALLBACK'; 
     jsonp.request(url, { method: 'Get' }) 
     .map(res => /...); 
     } 
    } 
+0

감사합니다. 이 문제가 크로스 원점 문제를 해결하는 방법을 자세히 설명해 주시겠습니까? 사람들에게 유용 할 수 있다고 생각합니다. 편집 해 주셔서 감사합니다. 매우 유용합니다! –

+1

자격이 없지만 wiki를 참조 할 수 있습니다. https://en.wikipedia.org/wiki/JSONP –

+0

AppModule에서 JsonpModule 가져 오기를 잊지 마세요. –

관련 문제