2016-07-22 4 views
1

Ich habe angular2 für JavaScript ausprobiert und konnte eine Http.get Anfrage machen, aber als ich versuchte, eine Http.post Anfrage zu machen, würde es 415 Unsupported Media Type Fehler zurückgeben.415 Nicht unterstützter Medientyp angular2

Der Code selbst ist ziemlich knapp, so dass ich nicht sicher war, was diesen Fehler verursachen könnte. Wie würde ich dieses Problem lösen?

var headers = new Headers(); 
headers.append('Content-Type', 'application/json'); 

console.log(headers.get('Content-Type'))    

return this.http.post(this.endpoint_url, data="test.json", headers=headers).subscribe(
    function(response){console.log("Success Response" + response)}, 
    function(error){console.log("Error happened : " + error)}); 
+0

415 fast auf jeden Fall etwas von Ihrem Server zurückgegeben werden. – Harangue

Antwort

0

Ihr Code wird einfach versucht, die Zeichenfolge test.json als Körper des Antrags zu veröffentlichen, nicht den Inhalt der test.json Datei.

Beachten Sie auch, dass Sie das = Symbol unter den this.http.post() Argumenten verwenden. Das bedeutet, dass die Werte den Variablen zugewiesen und zurückgegeben werden.

In der Praxis Code ist das gleiche wie:

return this.http.post(this.endpoint_url, "test.json", headers).subscribe(... 

Und „test.json“ ist kein gültiger JSON-String (das, was Sie zu sein scheint wollen, aufgrund der Header, die Sie setzen).

Wenn Sie test.json 's Inhalt senden möchten, sollten Sie zuerst HTTP GET es, dann senden Sie nur das Ergebnis als Körper des Beitrags.

0

try Ihre json vor dem Eintritt stringifying

this._http.post(this.standardUrl, 
      JSON.stringify({ 
       ClientVersion: '1.0.0.0', 
       ClientLanguage: 'en' 
      }), { headers: headers }) 
     .subscribe((response: Response) => { 
       data = response.json(); 
      }); 

dass zumindest ein JSON-Objekt zur Verfügung stellt ..

Verwandte Themen