Обязательный параметр String отсутствует: связаться с fetch - PullRequest
2 голосов
/ 20 июня 2019

Я пытаюсь использовать API извлечения для удаления JQuery из моего кода, и у меня возникает проблема с отправкой данных на сервер:

Вот моя функция:

url = '/authentication'
fetch(url, {
     method: 'POST',
     headers: {"Content-Type" : "application/json"},
     body: {username: username}
});

И Spring-side:

@PostMapping("/authentication", produces = "application/json")
@ResponseBody
public String authentication(HttpServletRequest request, @RequestParam(name = "username") String username){
...
}

но я получил следующую ошибку:

Resolved [org.springframework.web.bind.MissingServletRequestParameterException: обязательный параметр строки 'username' отсутствует]

Как правильно отправлять данные с помощью fetch и что я делаю не так?Я пытался поставить JSON.stringify или {"username":username}, но это ничего не меняет.

Спасибо за вашу помощь

РЕДАКТИРОВАТЬ 06/24: Я решил это с url = '/authentication?username='+username, ноУ меня проблемы с длинным jsonResponse с большим количеством символов ... (Request header is too large, только на моем телефоне)

1 Ответ

1 голос
/ 20 июня 2019

@ RequestParam проанализирует переменную в URL.

url = '/ authentication? Username = abc'

если вы хотите иметь дело с postbody

public String authentication(HttpServletRequest request, @RequestBody YourRequest request)

YourRequest.java

@Data
public class YourRequest {


    private String username;
}

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