2016-07-22 8 views
1

Я пытался опробовать angular2 для JavaScript, и я смог сделать запрос Http.get, но когда я попытался сделать запрос Http.post, он вернет ошибку 415 Unsupported Media Type.415 Неподдерживаемый тип материала angular2

Сам код довольно краток, поэтому я не был уверен, что может вызвать эту ошибку. Как я могу решить эту проблему?

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 почти определенно будет что-то возвращенный сервером. – Harangue

ответ

0

Ваш код просто выкладывает строку test.json в теле запроса, а не содержание test.json файла.

Также обратите внимание, что вы используете символ = в аргументах this.http.post(). Это присваивает значения варам и возвращает их.

На практике код такой же, как:

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

И «test.json» не является допустимым строка JSON (который, кажется, что вы хотите, в связи с заголовками, которые вы задаёте).

Если вы хотите отправить содержимое test.json, вы должны сначала HTTP GET, а затем отправить результат как тело сообщения.

0

попробовать stringifying ваш JSON перед входом

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

Это будет по крайней мере, обеспечить объект JSon ..

Смежные вопросы