2016-10-21 44 views
5

Mam usługę, która służył pustym json, ale dostaję te błędy. Jeśli używam https://jsonplaceholder.typicode.com/posts/6, to jest w porządku. Jak mogę obsłużyć te błędy we właściwy sposób?Angular 2 HTTP uzyskać obsługę 404 błąd

Usługa:

constructor(private http:Http) { } 

fetchData(){ 
    return this.http.get('https://jsonplaceholder.typicode.com/psts/6') 
     .map(
      (res) => res.json() 
    ) 
     .subscribe(
     (data) => console.log(data) 
); 
} 

Błąd:

enter image description here

+0

A dlaczego ty pomijając 'O'? –

+0

@HarryNinh co masz na myśli? – Bas

+1

Podany adres URL to 'https: // jsonplaceholder.typicode.com/posts/6', a adres URL w kodzie to' https: // jsonplaceholder.typicode.com/psts/6' –

Odpowiedz

7

Trzeba zdać drugi oddzwonienie do sposobu objęcia. To wywołanie zwrotne zostanie wykonane, gdy wystąpi błąd.

function handleError(error) { 
    console.log(error) 
} 

fetchData(){ 
    return this.http.get('https://jsonplaceholder.typicode.com/psts/6') 
     .map(
      (res) => res.json() 
    ) 
     .subscribe(
     (data) => console.log(data), 
     (error) => handleError(error) 
); 
} 
+0

Otrzymuję ReferenceError: handleError nie jest zdefiniowany – Bas

+1

Musisz zdefiniować funkcję błędu uchwytu. możesz logować konsolę lub robić to, co chcesz, z błędem. – Bazinga

+0

Czy masz przykład, więc mogę się uczyć? – Bas

4

Nie ma problemu w kodzie URL sama daje się

+0

Ale dostaję czerwonego rodzaju błędy w mojej konsoli, to nie jest dobre;) – Bas

+0

@Bas Jest to adres URL, który daje ** 404 **, oznacza to, że szukany zasób nie został znaleziony . Kod nie może tego naprawić, facet serwera adresu URL musi mieć jakiś zasób pod tym adresem URL – xameeramir