Angular 2 HTTP POST выполняет вызов OPTIONS

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

И затем, когда я пытаюсь выполнить вызов (я попытался выполнить console.log, чтобы проверить JSON и это правильно), и вызов пытается сделать вызов OPTIONS по любой причине:

Изображение запроса Google

У кого-нибудь есть идея? Спасибо!

Ответ 1

Вы делаете запрос на перекрестный домен.

Запрос localhost:9000 и выполнен из localhost:9002.

Браузер создает запрос перед полетом с глаголом OPTIONS, чтобы узнать, может ли он продолжить и сделать "реальный" запрос.

Подробнее о CORS здесь.