Angular POST-запрос с составным файлом и другими параметрами - PullRequest
0 голосов
/ 11 марта 2020

Я бы хотел сделать POST-запрос от angular, тогда как бэкэнд-разработчик ожидает запроса на весеннюю загрузку, подобного этому, с 3 параметрами:

@PostMapping(value = "/import", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public ResponseEntity<?> importFile(
            @RequestParam(value = "type") Dto dto,
            @RequestParam(value = "booleanValue", required = false) Boolean booleanValue,
            @RequestParam("file") MultipartFile file)
            throws IOException {

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

importFile(fileToImport: FileToImport, booleanValue?: boolean) {
    const formData = new FormData();
    formData.append('type', fileToImport.type);
    formData.append('booleanValue', booleanValue);
    formData.append('file', fileToImport.file);
    return this.http.post('/import', formData);
  }

force получил ошибку: Argument of type 'boolean' is not assignable to parameter of type 'string | Blob'

Так как я могу поставить 3 аргумента уважать бэкэнд?

Спасибо за помощь

1 Ответ

1 голос
/ 11 марта 2020

Вы пытаетесь передать логическое значение в функцию formData.append. Вместо этого вы должны преобразовать его в строку.

importFile(fileToImport: FileToImport, booleanValue?: boolean) {
  const formData = new FormData();
  formData.append('type', fileToImport.type);
  formData.append('force', booleanValue.toString());
  formData.append('file', fileToImport.file);
  return this.http.post('/import', formData);
}

Если ваш бэкэнд имеет особое значение для анализа логических значений, вам может потребоваться немного больше обработки. Имейте в виду, что Javascript строковое представление логических значений: "true" и "false".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...