Angular 2 не отправляет CORS HTTP AJAX-запрос

Угловой 2.0.0-rc6

Я пытаюсь получить доступ к серверу CouchDB через вызов CORS AJAX, как показано ниже.

let headers = new Headers();
headers.append('Authorization', 'Basic YWRtaW46TjI4Q29uMy4xYjItNDE=');
let options = new RequestOptions({ headers : headers, withCredentials: true });

this.http.get(this.couchDbUrl, options)
.map(this.extractData)
.catch(this.handleError);
console.log(this.couchDbUrl);

Здесь нет OPTIONS ни GET запрос отправлен из веб-браузера. catch & map обратный вызов не срабатывает. Также нет ошибки вообще!

Если я заменю код на jQuery, он будет работать достаточно хорошо.

jQuery.ajax({
  method  : 'GET',
  url : this.couchDbUrl,
  cache : false,
  crossDomain : true,
  xhrFields: {
    withCredentials: true
  },
  headers : { 'Authorization' : 'Basic YWRtaW46TjI4Q29uMy4xYjItNDE=' }
});

Я не хочу использовать jQuery, в чем проблема с Angular 2 HTTP-клиентом?

1 ответ

Решение

Вам нужно будет subscribe,

this.http.get(this.couchDbUrl, options)
.map(this.extractData)
.subscribe( data => ...) // Subscribe
.catch(this.handleError);

Дополнительная информация: https://angular.io/docs/ts/latest/guide/server-communication.html

Другие вопросы по тегам