метод post не будет успешным в angular - PullRequest
1 голос
/ 05 августа 2020

Я пишу проект angular с java, для этого я написал java rest-сервис и вызываю его из моего angular клиента с помощью метода post. он может вызывать остальную службу, но не доходит до клиента.

Я успешно сохранил предупреждение. Он не печатает, но на вкладке сети chrome отображается состояние 200.

Angular: -

 uploadFileToActivity() {
   const endpoint = 'http://localhost:8090/sendmails';
   let config =  {headers: new  HttpHeaders({})};
   const formData: FormData = new FormData();
   formData.append('fileupload', this.fileToUpload);
      
   this.httpClient.post(endpoint, formData).subscribe(data => {
   alert();
   })
  }

Java service : -

    @PostMapping(value = "/sendmails", headers = "content-type=multipart/*")
    public ResponseEntity<String> sendEmails(@RequestParam("fileupload") MultipartFile ExcelDataFile) {
        return new ResponseEntity<String>("Success", HttpStatus.OK);
    }

Я хочу успешно выполнить некоторые функции, но вызов не завершается успешно.

У меня ошибка в консоли.

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

1 Ответ

1 голос
/ 05 августа 2020

Вы возвращаете текст, а не объект JSON из службы java. Вы можете исправить это, указав responseType в своем вызове post:

this.httpClient.post(endpoint, formData, { responseType: 'text' })

Вы также можете подумать о возврате JSON из конечной точки JAVA, но это зависит от вас

...