Angular 2, C# MVC ApiController: Fel vid GET-förfrågan från C# Rest Api


jag har problem med C# ApiController, jag har något som detta:

public class Heroes
{
    public int userId;
    public int id;
    public string title;
    public string body;
}

public class HeroesController : ApiController
{
    // ...

    // GET: api/Heroes/5
    public Heroes Get(int id)
    {
        Heroes u = new Heroes() 
        { 
            userId = 1, title = "some titile", body = "some body" 
        };
        return u;
    }

    // ...
}

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        config.Formatters.JsonFormatter.SupportedMediaTypes
            .Add(new MediaTypeHeaderValue("text/html"));

        config.Formatters.Remove(config.Formatters.XmlFormatter);
    }
}

resultatet av Chrome-tillägget Restlet Client är korrekt (200 ok)
Begäran 'Get' skickas till http://localhost:63854/api/Heroes/5

{
"userId": 1,
"id": 0,
"title": "some titile",
"body": "some body"
}

men när jag skickar en GET-förfrågan i Angular får jag ett felmeddelande

TypeError: WEBPACK_IMPORTED_MODULE_1_rxjs_Observable.Observable.throw är inte en funktion

och (i Angular) om jag använder en extern REST API, något som detta
https://jsonplaceholder.typicode.com/posts
det fungerar korrekt, returnerar resultat, och jag har inga felmeddelanden.

Var finns felen i Rest Api i C#-kontrollern?
Jag misstänker inte att felen är på Angular-sidan.

förlåt för min dåliga engelska :c

Svar #1

Försök att lägga till denna import-sats högst upp i din klient:

import 'rxjs/add/observable/throw';