По вашему STACKBLITZ . api , который вы использовали, не работает должным образом.Если он изменился на рабочий get
api
, то вызов работает нормально. РАБОЧАЯ демоверсия с другим тестом api
вызов .
и вместо использования Http
я предлагаю вам использовать HttpClient с дополнительными преимуществами.
HttpClient в @ angular / common / http предлагает упрощенный клиентский HTTP-API для приложений Angular, который опирается на интерфейс XMLHttpRequest, предоставляемый браузерами.Дополнительные преимущества HttpClient включают в себя функции тестируемости, типизированные объекты запросов и ответов, перехват запросов и ответов, наблюдаемые apis и оптимизированную обработку ошибок.
Тогда вам не нужно явно разбирать json
внутри map
,А также он вернет наблюдаемый тип.Вы можете просто использовать возврат json
после подписки на него.
Прежде чем вы сможете использовать HttpClient
, вам необходимо импортировать Angular HttpClientModule
(в корень AppModule
).
Образец AppModule
код:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [
BrowserModule,
// import HttpClientModule after BrowserModule.
HttpClientModule,
],
declarations: [
AppComponent,
],
bootstrap: [ AppComponent ]
})
export class AppModule {}
Затем импортируйте HttpClient
внутри вашего VamosysService
import { HttpClient } from '@angular/common/http';
Попробуйтеиспользуйте getVechicalLocations()
как показано ниже
constructor(private _http: HttpClient) { }
getVechicalLocations(){
return this._http.get(API_URL);
}
Надеюсь, это поможет вам!