HttpErrorResponse при вызове. net основной метод из Angular 8 - PullRequest
1 голос
/ 12 апреля 2020

Я вызываю метод контроллера и возвращаю успех, если операция завершена. Но я продолжаю получать следующую ошибку

HttpErrorResponse {headers: HttpHeaders, status: 200, statusText: "OK", url: "http://localhost:5000/api/File/create", ok: false, …}headers: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ}status: 200statusText: "OK"url: "http://localhost:5000/api/File/create"ok: falsename: "HttpErrorResponse"message: "Http failure during parsing for http://localhost:5000/api/File/create"error: {error: SyntaxError: Unexpected token s in JSON at position 0
    at JSON.parse (<anonymous>)
    at XMLHtt…, text: "success"}__proto__: HttpResponseBase

[HttpPost("create")]
        public ActionResult<File> Create([FromBody]File file)
        {
            _fileService.Create(file);

            return Ok("success");
        }

Ответы [ 2 ]

2 голосов
/ 12 апреля 2020

Существует открытая проблема, и у вас есть много решений: https://github.com/angular/angular/issues/18396

Лучший способ - изменить тип ответа:

this.http.get(url, {responseType: 'text'})

Это ссылка: https://angular.io/guide/http#requesting -нон- json -данные

1 голос
/ 12 апреля 2020

Сторона Angular ожидает JSON, вызываемый метод действия в вашем примере возвращает текстовую строку. Например, вернувшись таким образом, клиентская сторона получит JSON и сможет его проанализировать:

[HttpPost("create")]
public ActionResult<string> Create([FromBody]File file)
{
    _fileService.Create(file);
    return Ok(new { str="success" });
}
...