Я пытаюсь выполнить запрос на получение api на localhost из своего углового приложения. Но по какой-то причине угловой клиент http, похоже, не выполняет запрос на получение.angular2 http.get() не отправляет запрос на сервер
Я могу видеть на своем сервере api, что запрос получения не был получен. И это вызывает ошибку. Api работает отлично, я пытался сделать завиток, и я получаю ожидаемые результаты.
EXCEPTION: Uncaught (in promise): TypeError: Cannot read property 'subscribe' of undefined
api.service
import { Injectable } from '@angular/core';
import { Headers, Http, Response, URLSearchParams, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Rx';
@Injectable()
export class ApiService {
headers: Headers = new Headers({
'Accept': 'application/json',
'Content-Type': 'application/json'
});
api_url: string = 'http://localhost:5001';
constructor(private http: Http) { }
private getJson(response: Response) {
return response.json().results;
}
checkForError(response: Response): Response {
if (response.status >= 200 && response.status < 300) {
return response;
} else {
var error = new Error(response.statusText);
error['response'] = response;
Observable.throw(error);
}
}
get(path: string, params: URLSearchParams): Observable<any> {
return this.http
.get(`${this.api_url}${path}/`, { headers: this.headers })
.map(this.checkForError)
.catch(err => Observable.throw(err))
.map(this.getJson);
}
api.component.ts
import { Component, OnInit } from "@angular/core";
import { ApiService } from './api.service';
@Component({
selector: 'item',
templateUrl: './item.component.html'
})
export class ItemComponent implements OnInit {
private itemData;
private errorAlert;
constructor(private apiService: ApiService) {}
ngOnInit() {
this.apiService.get('/items').subscribe(
result => this.itemData = result,
error => this.errorAlert = {msg: error, type: 'danger', closable: true},
);
}
}
В 'checkForError' должно быть' return' перед 'Observable.throw (ошибка)', но это кажется не связанным с вашим сообщением об ошибке. 'map (getJson)' должен быть 'map (this.getJson)'. –
Наблюдаемый ничего не делает до того, как вызывается 'subscribe()'. Поскольку 'subscribe()' fail не может быть запросом. –
Предоставьте некоторый снимок экрана с вкладки сети инструментов dev –