Я пытаюсь получить список записей из моего веб-API .net core, который размещен на моем локальном IIS.Я следовал учебнику о том, как это сделать.Я получил это для работы и отображения со следующим кодом, который вызывает тестовый веб-сайт json.
getUsers() {
return this.http.get('http://jsonplaceholder.typicode.com/users')
.map(response => response.json())
.catch(this.handleError);
}
Далее, я хочу переключить URL-адрес на мой локальный.
getUsers() {
return this.http.get('http://localhost:8081/api/account')
.map(response => response.json())
.catch(this.handleError);
}
ЯЯ не уверен, почему на угловой странице будет отображаться содержимое сайта тестирования json, а не мой локальный iis.Когда я тестировал webapi, он работает с почтальоном и URL-адресом chrome.
Я также добавил импорт 'rxjs / add / Observable / throw', но выбрасывал ту же ошибку.
Почему он работает сJSON-канал с тестового сайта, но не мой веб-API.Это мое замешательство и как это исправить.
Любая помощь очень ценится.
Что я нажал на f12, я вижу следующие ошибки
core.js: 1673 ОШИБКА TypeError: rxjs_Observable__WEBPACK_IMPORTED_MODULE_2 __. Observable.throw не является функцией в CatchSubscriber.push ../src / app / services / user.service.ts.UserService.handleError [как селектор]CatchSubscriber.push ../ node_modules / rxjs / _esm5 / internal / operator / catchError.js.CatchSubscriber.error (catchError.js: 34) в MapSubscriber.push ../ node_modules / rxjs / _esm5 / internal / Subscriber.js.._error (Subscriber.js: 83) в MapSubscriber.push ../ node_modules / rxjs / _esm5 / internal / Subscriber.js.Subscriber.error (Subscriber.js: 61) в XMLHttpRequest.onError (http.js: 1066) вZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask (zone.js: 421) в Object.onInvokeTask (core.js: 3811) в ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask (zone.js: 420) вZone.push ../ node_modules / zone.js / dist / zone.js.Zone.runTask (zone.js: 188) в ZoneTask.push ../ node_modules / zone.js / dist / zone.js.ZoneTask.invokeTask[as invoke] (zone.js: 496)
код user.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import 'rxjs/Rx';
import { Observable } from 'rxjs/Observable';
import { Http, Response } from '@angular/http';
import 'rxjs/add/operator/map';
import { User } from '../models/user';
import { throwError } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class UserService {
constructor(private http: Http) { }
getUsers() {
return this.http.get('http://localhost:8081/api/account')
.map(response => response.json())
.catch(this.handleError);
}
private handleError(error: Response) {
console.error(error);
return Observable.throw(error.json() || 'Server error');
}
}
Вот мой код компонента пользователя:
import { Component, OnInit } from '@angular/core';
import { UserService } from '../../services/user.service';
import { Observable } from 'rxjs';
import { User } from '../../models/user';
import 'rxjs/add/Observable/throw'
@Component({
selector: 'app-users',
templateUrl: './users.component.html',
styleUrls: ['./users.component.scss']
})
export class UsersComponent implements OnInit {
errorMessage: string;
users$; Object;
constructor(private userService: UserService) { }
ngOnInit() {
this.getUsers();
}
getUsers() {
// need to subscriber to the Observable method to get data
this.users$ = this.userService.getUsers()
.subscribe(( userData )=> this.users$ = userData );
}
}