2016-08-26 2 views
10

Angular 2 응용 프로그램에 정말 이상한 문제가 있습니다. 실제로 Play Scala API에 JSON이 포함 된 POST 호출을 만들고 싶지만 OPTIONS 호출을 계속하려고합니다.Angular 2 HTTP POST가 OPTIONS 호출을 수행합니다.

LoginService

constructor (private _apiEndpoint: ApiEndpoint) {} 

postLogin(login: string, credential: string): Observable<AuthToken> { 
    let headers = new Headers({ "Content-Type": "application/json" }) 
    let jsonLogin = {"login": login, "password": credential} 

    return this._apiEndpoint.postLogin(JSON.stringify(jsonLogin), headers) 
        .map(this._apiEndpoint.extractData) 
} 

ApiEndpoint

constructor (private _http: Http) {} 

postLogin(body: string, options: any) { 
    return this._http.post("http://localhost:9000/login", body, { 
     headers: options 
    }) 
} 

그리고 내가 전화를 할 때 다음 (나는 콘솔에 시도했다 :

여기 내 코드입니다. JSON을 점검하기위한 로그와 그 것이 맞다), 어떤 이유로 든 OPTIONS 호출을 시도한다. :

Google request picture

사람에게 생각을 했습니까? 감사 !

답변

16

당신은 상호 도메인 요청을하고 있습니다.

localhost:9000에 대한 요청이며 localhost:9002에서 이루어집니다.

브라우저는 계속 OPTIONS 동사와 함께 "실제"요청을 계속할 수 있는지 여부를 알기 위해 비행 전 요청을 만듭니다.

CORS here에 대해 자세히 알아보십시오.

+0

그 것이 었습니다! 고맙습니다 ! 최악의 경우 컨트롤러에 옵션 기능이있어서 링크를 연결하는 것을 잊어 버렸습니다. – Guigui

관련 문제