1

Я отправляю остановка объекта от angular2, это кодЯ отправляю от angular2 к чистой сердцевиной и получение: не удалось загрузить ресурс сервер ответил с кодом состояния 415 (неподдерживаемый тип носителя)

addStop(stop: IStop): Observable<IStop> { 

     let headers = new Headers({ 'Content-Type': 'application/json' }); 
     let options = new RequestOptions({ headers: headers }); 

     return this._http.post(this._tripsUrl, stop, options) 
     .map(this.extractData) 
     .catch(this.handleError); 
    } 

это чистый базовый код, который должен получить объект, но не активирован, при удалении [FromBody] атрибут, служба activated-, но я получаю пустой

[Route("api/trips/{tripName}/stops")] 
    [HttpPost("")] 
    public async Task<IActionResult> Post(string tripName, [FromBody]Stop theStop) 
    { 
     if (ModelState.IsValid) 
     { 
      //some code 

      if (await _repository.SaveChangesAsync()) 
      { 
       return //some code 
      } 
     } 
     return BadRequest("Bad Request"); 
    } 

нужна помощь, я не найти ошибку

+0

Это не нужно ** let headers = new Headers ({'Content-Type': 'application/json'}); **, по умолчанию поставщики http отправляют объект JSON с длинной строкой. И похоже, что вы не передаете что-то в URL-адресе! Не могли бы вы показать *** this._tripsUrl **? – Fals

+0

Не могли бы вы попытаться удалить атрибут Route из действия и просто использовать '[HttpPost (" api/trip/{tripName}/stops ")]'? Потому что теперь похоже, что зарегистрировано два маршрута. – juunas

+0

_tripsUrl is: private _tripsUrl = 'http: // localhost: 53620/api/tours/Berlin/stops'; –

ответ

0

Это была проблема с Cors, я уже определил cors в моем web.config моего сервера ASP.NET Core, и получить функцию работает нормально, но функция post не работает, правильный способ определения корса написан в этом статья: https://weblog.west-wind.com/posts/2016/Sep/26/ASPNET-Core-and-CORS-Gotchas