I had a similar issue with the following JavaScript code:
var url = 'http://my-host-name.com/api/Rating';
var rating = {
value: 5,
maxValue: 10
};
$.post(url, JSON.stringify(rating), showSavedNotification);
Where in the Fiddler I could see the request with:
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
{"value":"5","maxValue":"5"}
As a result, my server couldn't map an object to a server-side type.
After changing the last line to this one:
$.post(url, rating, showSavedNotification);
In the Fiddler I could still see:
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
value=5&maxValue=10
However, the server started returning what I expected.