2016-08-26 12 views
10

Znam bardzo dziwny problem z moją aplikacją Angular 2. Właściwie chcę wykonać wywołanie POST zawierające JSON do mojego API Play Scala, ale nadal chce spróbować wykonać wywołanie OPTIONS.Angular 2 HTTP POST wywołuje OPCJE

Oto mój kod:

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

A potem, gdy próbuję wykonać połączenie (próbowałem pocieszyć. log, aby sprawdzić JSON i jest poprawny), a połączenie próbuje wykonać wywołanie OPTIONS z dowolnego powodu :

Google request picture

ma ktoś pomysł? Dzięki !

Odpowiedz

16

Tworzysz żądanie między domenami.

Wniosek dotyczy localhost:9000 i składa się z localhost:9002.

Przeglądarka tworzy żądanie przed lotem z czasownikiem OPCJE, aby wiedzieć, czy może kontynuować i wykonać "prawdziwą" prośbę.

Dowiedz się więcej o CORS here.

+0

To było coś! Dziękuję Ci ! Najgorsze jest to, że miałem funkcję opcji w kontrolerze, po prostu zapomniałem ustawić trasę, aby ją połączyć ... – Guigui