Как получить данные из рабочего веб-API в угловых? - PullRequest
0 голосов
/ 20 мая 2019

Хорошо, я пытаюсь получить данные из Web API, которые я сделал в угловом формате.Web API работает. Я тестировал его с помощью Postman, и Postman получает данные из Web API просто отлично, вот скриншот Postman, получающего данные из Web API "http://prntscr.com/nr18ct".Это делает меня уверенным, что это проблема с угловым.И я извиняюсь, если я не вижу смысла или если остальная часть вопроса / поста придумана впервые, задавая вопрос здесь.

Я следовал угловому учебнику на Angular.io Iна самом деле не знаю, чем это может быть вызвано, просто сказать, что он прекрасно работал до того, как я выполнил последнюю часть руководства, которая пытается получить данные из Web API.Моей первой мыслью было, может быть, я кое-что нашел в классе PagedVehicleMake в angular (класс машинописи) или в классе VehicleMake также в классе angular и машинописи

часть Web API: как вы видели на снимке экрана, который я отправлял ранееВеб-API отправляет данные этого типа.

    public class PagedResult<T> : IPagedResult<T> where T : class
{
        public int PageNumber { get; set; }
        public int PageSize { get; set; }
        public int TotalNumberOfPages { get; set; }
        public IEnumerable<T> Results { get; set; }
}

и IEnumrable Results в этом случае - IEnumrable Results, а VehicleMakeVM:

    public class VehicleMakeVM
{
        public int Id { get; set; }
        public string Name { get; set; }
        public string Abrv { get; set; }
}

Теперь для угловой части:

export class PagedVehicleMake{
    Results : VehicleMake[];
    TotalNumberOfPages : number;
    PageSize : number;
    PageNumber : number;
}

Я попытался организовать класс PagedVehicleMake таким же образом, как данные отправляются Почтальону, как показано на скриншоте, который я отправил.Я подумал, может быть, это как-то связано с этим.

export class VehicleMake {
    Id : number;
    Name : string;
    Abrv : string;
}

и вот класс VehicleMakeService в угловом формате:

export class VehicleMakeService {

  constructor(private http: HttpClient, private messageService : MessageService) { }
  private vehiclemakesUrl = "http://localhost:53282/api/VehicleMake"
  /**GET vehiclemakes from the server */
  getVehicleMakes() : Observable<PagedVehicleMake>{
    this.messageService.add("VehicleMakeService : fetched VehicleMakes")
    return this.http.get<PagedVehicleMake>(this.vehiclemakesUrl).pipe(
      catchError(this.handleError<PagedVehicleMake>("getVehicleMakes", []))
      );
  }
    /**
   * Handle Http operation that failed.
   * Let the app continue.
   * @param operation - name of the operation that failed
   * @param result - optional value to return as the observable result
   */
  private handleError<T> (operation = 'operation', result?: T) {
    return (error: any): Observable<T> => {

      // TODO: send the error to remote logging infrastructure
      console.error(error); // log to console instead

      // TODO: better job of transforming error for user consumption
      this.log(`${operation} failed: ${error.message}`);

      // Let the app keep running by returning an empty result.
      return of(result as T);
    };
  }
    /** Log a VehicleMakeService message with the MessageService */
    private log(message: string) {
      this.messageService.add(`VehicleMakeService: ${message}`);
    }

Я ожидал, что он просто получит данные из WebAPI, но этокак-то не способен получить данные.

1 Ответ

0 голосов
/ 20 мая 2019

Я разобрался в чем проблема.Это был WebAPI, на самом деле я забыл включить CORS, вот и все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...