Мой проект spring boot java тимелеафа имеет форму с раскрывающимся списком, заполненным из таблицы SQL. В форме есть второй раскрывающийся список, который я хочу заполнить в зависимости от того, какой элемент выбран в первом раскрывающемся списке. Для этого мне нужно будет передать идентификатор значения первого раскрывающегося списка обратно в контроллер Spring. Я знаю, что мне нужно использовать JQuery Ajax, чтобы выполнить sh это. Я пытаюсь выполнить один вызов ajax для передачи выбранного идентификатора и получить новый список для второго раскрывающегося списка без обновления страницы, но не могу правильно понять синтаксис.
Я был смог войти в мою функцию контроллера Spring с обновленным кодом ниже, но я не уверен, как передать данные обратно и добавить их на страницу.
Может ли кто-нибудь объяснить мне, что это за данные в функции Success ? Когда я его console.log, ничего не появляется. И я считаю, что мне нужно передать данные обратно в эту функцию, чтобы я мог добавить эти данные из моего контроллера Spring в параметры выбора.
$('#parentCo').on('change', function(event){
$('#parentCo').find('option:selected');
var id = $('#parentCo').find('option:selected').attr('data');
console.log(jQuery.type(id));
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
$.ajax({
type: "POST",
url: "/carrierAjax",
data:{data: $('#parentCo').find('option:selected').attr('data')},
cache: false,
timeout: 600000,
beforeSend: function(xhr) {
// here it is
xhr.setRequestHeader(header, token);
console.log(header +", "+ token);
},
success: function (data) {
//appending data and console.log(data) doesnt return anything
}
});
});
Вот мой контроллер ...
@RequestMapping(value="/carrierAjax", method=RequestMethod.POST)
public @ResponseBody List <CarrierUmbrella> getcarrierswriteco (@RequestParam("data") String data) {
List <CarrierUmbrella> carrierUmbrellas = carrierUmbrellaRepository.findByCarrier(caRepository.findById(Long.parseLong(data)));
// model.addAttribute("carrierUmbrellas", carrierUmbrellas);
return carrierUmbrellas;
}