2016-08-26 4 views
10

Я столкнулся с действительно странной проблемой с моим приложением Angular 2. Я действительно хочу сделать POST-вызов, содержащий JSON, для моего API Play Scala, но он хочет попытаться сделать вызов OPTIONS.Угловой 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

Смежные вопросы