The following code works 90% of the time on normal-length JSON strings. I receive an incoming JSON String in my SpringMVC Controller, formed from a DataTable .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");
        }
Controller:
@RequestMapping(value="/loadParticipantsExportValues", method=RequestMethod.POST)
public void loadParticipantsExportValues(@RequestParam("participants") String json) throws Exception {
   //...
}
But on very large JSON strings only (formed from a 10K-row DataTable), even though I verify in the Debugger that the array gets created, I get this:
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)
Any ideas? Is something getting truncated or maxed out?
 
    