Следующий код работает в 90% случаев со строками JSON нормальной длины. Я получаю входящую строку JSON в моем контроллере SpringMVC, сформированную из таблицы данных .data()
.
Ajax:
function exportParticipants() {
var table = $('#participantsTable').DataTable();
var displayData = table.rows({filter:'applied'}).data(); // Get my data into "result" array
var result = $.makeArray();
$.each(displayData,function(index,row) {
result.push(row);
});
$.ajax({
url: "/app/loadParticipantsExportValues",
type: "post",
data: {
'participants': JSON.stringify(result) // Note that I form this 'participants' param
},
success: function (res){
console.log("success");
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("error");
}
Контроллер:
@RequestMapping(value="/loadParticipantsExportValues", method=RequestMethod.POST)
public void loadParticipantsExportValues(@RequestParam("participants") String json) throws Exception {
//...
}
Но на оченьтолько большие строки JSON (сформированные из таблицы данных из 10K строк), хотя я проверяю в отладчике, что массив создается, я получаю следующее:
org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'participants' is not present
at org.springframework.web.method.annotation.RequestParamMethodArgumentResolver.handleMissingValue(RequestParamMethodArgumentResolver.java:204)
at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:112)
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:124)
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)
Есть идеи? Что-то усечено или исчерпано?