Well, the problem was in the next line: I did not send csrf tokens, as in normal form representations.
$('<form target="_blank" action="report" method="post"></form>').append(params).appendTo('body').submit().remove();
So what I did, I created a hidden field and paste it as shown below.
<script type="text/javascript"> $(document).ready(function () { $('#download').click(function(){ var params = $('#params_').clone(); var csrftoken = $("#csrftoken_").clone(); $('<form target="_blank" action="report" method="post"></form>') .append(params) .append(csrftoken) .appendTo('body') .submit() .remove(); }); }); </script> <input type='hidden' id='params_' name='params' value='${params}' /> <input type="hidden" id="csrftoken_" name="${_csrf.parameterName}" value="${_csrf.token}" />
It works....
source share