2017-01-03 5 views
0

Ich habe eine Frage, wenn ich versuche, ein Json-Objekt zu meinem Restfull-API zu posten, wird es nicht funktionieren.posting json von angular2 zu restful webapi

Ich habe überall gesucht und schon viel versucht, aber ohne Erfolg. enyone kann mir helfen mit, hier ist der Code von angular2

postContact(contact: IContact){ 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 
    let body = JSON.stringify(contact); 
    return this._http.post(this._contactenlijstUrl, body, headers).map((res: Response) => res.json()).subscribe(); 

Hier wird der Code aus dem WebAPI

[HttpPost] 
     public IActionResult VoegPersoonToe([FromBody]JObject test) 
     { 
      try 
      { 
       .... Here i have to create a class and import the json object... 

       return Ok(); 
      } 
      catch (Exception) 
      { 

       return BadRequest(); 
      } 
     } 

Wenn ich den Code ausführen bekomme ich diesen Fehler:

Angular 2 läuft im Entwicklungsmodus. Rufen Sie enableProdMode() auf, um den Produktionsmodus zu aktivieren. http://localhost:39468/api/contacten/ fehlgeschlagen Ressource laden: 3462 AUSNAHME:: mit dem Status Antwort: der Server mit dem Status 415 (Unsupported Media Type) core.umd.js reagierte 415 Nicht unterstützter Medientyp für den URL: http://localhost:39468/api/contacten/ ErrorHandler.handleError @ core.umd Js: 3462 Subscriber.ts: 241Uncaught Antwort

Thx für die Hilfe

Antwort

0

Sie haben nicht die RequestOptions auf die Post-Methode übergeben, setzen Sie die Header statt! Versuchen Sie dies:

return this._http.post(this._contactenlijstUrl, body, options).map((res: Response) => res.json()).subscribe(); 
+0

Ich tat, was Sie suggest, aber ohne gutes Ergebnis: Angular 2 läuft im Entwicklungsmodus. Rufen Sie enableProdMode() auf, um den Produktionsmodus zu aktivieren. 2http: // localhost: 39468/api/contacten/Ressource konnte nicht geladen werden: Der Server hat mit dem Status 415 geantwortet (nicht unterstützter Medientyp) nieuwContact: 1 XMLHttpRequest kann nicht geladen werden http: // localhost: 39468/api/contacten/. Antwort für Preflight hat ungültigen HTTP-Statuscode 415 core.umd.js: 3462 AUSNAHME: Antwort mit Status: 0 für URL: null ErrorHandler.handleError @ core.umd.js: 3462 Subscriber.ts: 241Uncaught Antwort –

+0

Des ' Preflight 'in der Fehlermeldung zeigt an, dass Sie ein CORRES-Problem (Cross-Origin Resource Sharing) haben. Abhängig von Ihrem Server und Ihrer Infrastruktur kann der Umgang damit variieren. – StephaneM

+0

Es war in der Tat die CORS im asp.net Kern, wo nicht gut eingestellt! Danke für den Rat –