Я пытаюсь получить API REST от Ensemble, запущенного на Angular2 с использованием наблюдаемых. Я не уверен, в чем проблема. Вот как выглядит мой код (и здесь прилагается ошибка http://pastebin.com/mSHEq43H)Отладка http.get и наблюдаемых в угловом 2
Обратите внимание, что я добавил соответствующие заголовки. Чтобы проверить, мы можем изменить значение заголовка и видеть, что мы получаем 415, если я изменяю заголовок .
let header = new Headers();
header.append('Content-type', 'application/json');
this.http.get('http://rest.ensembl.org/lookup/id/ENSG00000157764?expand=0',
{
headers: header
})
.map((res: Response) => res.json())
.subscribe(
data => {
console.log('data');
this.data = data;
},
error => {
this.errorMessage = <any>error;
},
() => console.log('random look complete'));
Я также попробовал свои API только с заголовком Content-типа, установленного в качестве приложения/JSON на Почтальон он работает без каких-либо вопроса, используя тот же идентификатор и заголовок.
Для отладки дальше, я использовал альтернативный API, который работает отлично
this.http.get('http://jsonplaceholder.typicode.com/photos/1')
.map((res: Response) => res.json())
.subscribe(res => {
this.data = res;
this.errorMessage = false;
});
Я пропускаю на что-нибудь?
Другие вопросы, которые у меня есть, есть, если есть простой способ отладки без обхода? Любой ресурс будет полезен.
Update
я понял, что проблема Угловой 2 на RC5 (я не проверил с финальным релизом пока). API http.get имеет два параметра (url, RequestOptionsArg).
Если я использую RequestOptionsArg, тогда я должен передать ВСЕ параметры, даже если тело было пустым.
В документации указано, является ли тело пустым, ему будет присвоено значение null или undefined. Однако API вызывает toString(), и я предполагаю, что нет никаких проверок для null и, следовательно, проблемы.