I do request using XMLHttpRequest to Java server but request params are missing.
So here is the js code which works fine (at least I see it sends params in network tab):
var data = JSON.stringify({
dis: 'inline',
ps: this.model.get('name')
});
var req = new XMLHttpRequest();
req.open('POST', 'http://example.com/downloadPDF', true);
req.responseType = 'arraybuffer';
req.setRequestHeader("Content-type", "application/json; charset=utf-8");
req.setRequestHeader("Content-length", data.length);
req.onload = function (e) {
//...
};
req.send(data);
And I get request without params on the server. Controller successfully stops here if to set breakpoint.
@RequestMapping(value = "downloadPDF", method = RequestMethod.POST, produces = "application/pdf")
public void downloadPDF(HttpServletRequest request, HttpServletResponse response){
String url = service + "/downloadPDF";
log.debug(request.getParameterNames().size()) // size == 0
List<NameValuePair> urlParameters = super.getParametersFromRequest(request);
String browserType = request.getHeader("User-Agent");
urlParameters.add(new BasicNameValuePair("browserType", browserType));
super.readResponse(url, urlParameters, response);
}
I've also caught request in the filter before doChain()
, its params are also empty.