Http-запрос не достигает MVC Backend. Нет ошибок, показывающих почему - PullRequest
1 голос
/ 11 июля 2019

Я пытаюсь воссоздать учебную программу Tour of Heroes на Angular, но на этот раз с бэкэндом MVC.однако, кажется, что есть разрыв между моим запросом HTTP Get и сервером, когда я пытаюсь получить список героев.Я не уверен, что может быть причиной этой проблемы, потому что нет никаких сообщений об ошибках, показывающих, когда я ошибаюсь приложения.(и интерфейс, и сервер работают из VSC и VS соответственно).Любой вклад, который вы, ребята, можете предоставить, был бы фантастическим.

Ниже приведен код службы моих героев и контроллера героев.

     import { Injectable } from '@angular/core';
     import { HttpClient, HttpHeaders } from '@angular/common/http';

     import { Observable, of } from 'rxjs'; 
     import { catchError, map, tap } from 'rxjs/operators';

     import { Hero } from './heroes';
     import { MessageService } from './messages.service';

     const httpOptions = {
      headers: new HttpHeaders({ 'Content-Type': 'application/json' })
      };

@Injectable()
export class HeroService {

  private heroesUrl = 'http://localhost:44339/api/values';  // URL to web api

  constructor( private http: HttpClient, private messageService:    MessageService) { }

  /** GET heroes from the server */
  getHeroes (): Observable<Hero[]> {
    return this.http.get<Hero[]>(this.heroesUrl);

  }

}
``````````````
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using HeroApi.Models;
using Microsoft.AspNetCore.Mvc;

namespace HeroApi.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class HeroesController : ControllerBase
    {

        [HttpGet]
        public IEnumerable<Hero> GetAll()
        {
            var list = new List<Hero>();
            list.Add(new Hero() { name = "Dynamo" , id = 1});
            list.Add(new Hero() { name = "Captain Fission", id = 2 });
            return list;
        }


        [HttpGet("{id}")]
        public Hero Get(int Id)
        {
            return new Hero(){ id = Id };
        }


        [HttpPost]
        public void Post([FromBody] string value)
        {
        }


        [HttpPut("{id}")]
        public void Put(int id, [FromBody] string value)
        {
        }


        [HttpDelete("{id}")]
        public void Delete(int id)
        {
        }
    }
}
``````````````

1 Ответ

0 голосов
/ 11 июля 2019

Вы подписываетесь на Observable, возвращенный из getHeroes?

heroService.getHeros()

Не будет запускать запрос http, он будет возвращать наблюдаемый, который запускает запрос http при подписке.

heroService.getHeros().subscriber(heros => {
  // do stuff with heroes, this will fire off a http request
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...