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';