POST JSON fails with 415 Unsupported media type, Spring 3 mvc POST JSON fails with 415 Unsupported media type, Spring 3 mvc json json

POST JSON fails with 415 Unsupported media type, Spring 3 mvc


I've had this happen before with Spring @ResponseBody and it was because there was no accept header sent with the request. Accept header can be a pain to set with jQuery, but this worked for me source

$.postJSON = function(url, data, callback) {    return jQuery.ajax({    headers: {         'Accept': 'application/json',        'Content-Type': 'application/json'     },    'type': 'POST',    'url': url,    'data': JSON.stringify(data),    'dataType': 'json',    'success': callback    });};

The Content-Type header is used by @RequestBody to determine what format the data being sent from the client in the request is. The accept header is used by @ResponseBody to determine what format to sent the data back to the client in the response. That's why you need both headers.


adding content type into the request as application/json resolved the issue


I had a similar problem but found the issue was that I had neglected to provide a default constructor for the DTO that was annotated with @RequestBody.