2016-10-11 2 views
1

создать Contactformular, мой моделируемой сервер работает, но в угловом 2, есть мой Create-функция:Угловое 2 - POST не установлен Content-Type для приложения/JSON (его текст/простой)

createPatient(Name: string, Nachname: string, Geburtsdatum: string, Strasse: string, Hausnummer: string, Postleitzahl: string, Wohnort: string): Observable<boolean> { 
    let patient = { 
     Id: 0, 
     Name: Name, 
     Nachname: Nachname, 
     Geburtsdatum: Geburtsdatum, 
     Strasse: Strasse, 
     Hausnummer: Hausnummer, 
     Postleitzahl: Postleitzahl, 
     Wohnort: Wohnort 
    }; 
    let body = JSON.stringify(patient); 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 
    return this.http.post(this.patientenUrl + "CreatePatient", body, options) 
    .map((r: Response) => { 
     console.log(r); 
     return <boolean>r.json(); 
    }); 

Тело не связано с Url, поэтому мой «сервер» не работает. Где я терпеть неудачу?

я всегда получаю:

 
OPTIONS http://localhost:9177/api/v1/CreatePatient 
XMLHttpRequest cannot load http://localhost:9177/api/v1/CreatePatient. Response for preflight has invalid HTTP status code 415 
EXCEPTION: Response with status: 0 for URL: null 
Uncaught Response with status: 0 for URL: null 

После некоторой помощи я получить это решение:

 
createPatient(Name: string, Nachname: string, Geburtsdatum: string, Strasse: string, Hausnummer: string, Postleitzahl: string, Wohnort: string): Observable { 
     let patient = { 
      Id: 0, 
      Name: Name, 
      Nachname: Nachname, 
      Geburtsdatum: Geburtsdatum, 
      Strasse: Strasse, 
      Hausnummer: Hausnummer, 
      Postleitzahl: Postleitzahl, 
      Wohnort: Wohnort 
     }; 
     let body = JSON.stringify(patient); 
     let headers = new Headers({ 'content-type': 'application/json', 'accept': 'application/json'}); 
     let options = new RequestOptions({ headers: headers }); 
     return this.http.post(this.patientenUrl + "CreatePatient", body, headers) 
     .map((r: Response) => { 
      console.log(r); 
      return r.json(); 
     }); 

и теперь я получаю мое тело, но Content-Type является 'текст/обычный' так Теперь я всегда получаю:

 
POST http://localhost:9117/api/v1/CreatePatient 415 (Unsupported Media Type) 
EXCEPTION: Response with status: 415 Unsupported Media Type for URL: http://localhost:9117/api/v1/CreatePatient 
Uncaught Response with status: 415 Unsupported Media Type for URL: http://localhost:9117/api/v1/CreatePatient 

My Controller-функции для создания:

 

    [Route("[action]")] 
      [HttpPost] 
    public JsonResult CreatePatient([FromBody]Patient patient) 
       { 
        this.ResStatus.Status = false; 
        var pat = patient; 
        var ida = GetId(); 
        //Prüfung ob Customer Leer oder Null 
         pat.Id = (int)ida; 
         patientRepository.Insert(pat); 
         this.ResStatus.Status = true; 
         return Json(this.ResStatus.Status);     
       } 

Я решить проблему: я изменить Wwwroot из ASP.NET Ядра в угловой 2 проекта и включаю в себя ссылку из index.html, что я могу обновить без проблем.

+0

что вы имеете в виду, что тело не связано с URL? Тело - тело запроса HTTP. Проверьте его с помощью своего браузера devtool. Проблема может быть на вашем сервере. – JEY

+0

Я проверяю сервер, но есть все okey, мое тело не существует в обратном, я имею в виду, если я отправлю post_request i debug в google chrome и там у меня нет тела. –

ответ

1

Почему вы используете JSON.stringify для своего тела? Вы не должны делать это, он должен работать без JSON.stringify()

-

И что я имею в виду, что вы должны либо просто отправить «пациента» или сделать «тело = пациента; " а затем отправить тело.

+0

Я пробую вашу версию, но она всегда не работает: –

+0

Вы использовали средства разработки в своем браузере, чтобы увидеть, что запрос действительно отправлен? Вы видите в REST-службе, что ваш запрос запускает обработку POST-запроса? – OddBeck

+0

до 1. Вопрос: да, мы видим, что запрос создается, и он отсылается –