Во-первых, в вашем JS-скрипте у вас есть ошибка в вызове ajax, данные означают, что параметр посылается не из ajax.вот правильная версия кода.
$(document).ready( function () {
$('#table_id').DataTable({
processing: true,
serverSide: false,
dataType: "json",
ajax: {
url: "http://localhost:8080/greeting",
method: 'GET',
dataSrc: function (json) {
console.log("json",json)
return json;
},
},
columns: [
{data: 'id'},
{data: 'content'}
]
});
});
Во-вторых, в бэкэнд на контроллере необходимо добавить аннотацию @CrossOrigin(origins = "*")
, чтобы избежать перекрестного источника ошибок.
НаконецDatatable должен иметь массив в результате перенастройки, а это не так в вашем контроллере.Возвращает объект.Я предлагаю обернуть ваш объект в список следующим образом:
@CrossOrigin(origins = "*")
@RestController
public class GreetingController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@RequestMapping("/greeting")
public List<Greeting> greeting(@RequestParam(value="name", defaultValue="World") String name) {
List<Greeting> ls = new ArrayList<Greeting>();
ls.add(new Greeting(counter.incrementAndGet(),
String.format(template, name)));
return ls;
}
}
Надеюсь, это поможет.