angular запрос весенней загрузки с ошибкой образа - PullRequest
1 голос
/ 12 июля 2020

Итак, я пытаюсь отправить из Angular в свой весенний загрузочный бэкэнд изображение вместе с некоторым текстом в виде x- wwww-form-urlencoded. Вот метод обслуживания angular:

img(tags:HTMLInputElement, des:HTMLInputElement, selectFile){
    let url = "http://localhost:8080/api/v1/add_item"

    const body = new HttpParams()
    body.set("img", selectFile)
    body.set("tags", tags.value)
    body.set("des", des.value)

    return this.http.post<Isecurity[]>(url, body.toString(),{
      headers:new HttpHeaders()
      .set('Content-Type', 'application/x-www-form-urlencoded')
    } )
  }

и на остальной стороне:

@PostMapping("add_item")
    @CrossOrigin
    public  Map<String, Boolean> add_item(@RequestParam MultipartFile img, @RequestParam String tags, @RequestParam String des){
        Map<String, Boolean> values = new HashMap<>();
        values.put("response", true);
        return values;}

Я думаю, что это так, из-за тегов @RequestParam, потому что единственный ответ, я получаю 500 ошибок сервера ...

1 Ответ

0 голосов
/ 12 июля 2020

Я думаю, что вы неправильно передаете параметры. Вы просто сохранили имя params как тело, но на самом деле это не тело.

Вам нужно передать params, используя '?' после URL-адреса.

Итак вам необходимо обновить свой код в файле .ts следующим образом:

img(tags:HTMLInputElement, des:HTMLInputElement, selectFile){
let url = "http://localhost:8080/api/v1/add_item?"

const params= new HttpParams()
params.set("img", selectFile)
params.set("tags", tags.value)
params.set("des", des.value)

return this.http.post<Isecurity[]>(url+params.toString(),{
  headers:new HttpHeaders()
  .set('Content-Type', 'application/x-www-form-urlencoded')
} )

}

...