POST JSON 失败,出现 415 Unsupported media type, Spring 3 mvc
I am trying to send a POST request to a servlet. Request is sent via jQuery in this way:
var productCategory = new Object();
productCategory.idProductCategory = 1;
productCategory.description = "Descrizione2";
newCategory(productCategory);
where newCategory is
function newCategory(productCategory)
{
$.postJSON("ajax/newproductcategory", productCategory, function(
idProductCategory)
{
console.debug("Inserted: " + idProductCategory);
});
}
and postJSON is
$.postJSON = function(url, data, callback) {
return jQuery.ajax({
'type': 'POST',
'url': url,
'contentType': 'application/json',
'data': JSON.stringify(data),
'dataType': 'json',
'success': callback
});
};
With firebug I see that JSON is sent correctly:
{"idProductCategory":1,"description":"Descrizione2"}
But I get 415 Unsupported media type. Spring mvc controller has signature
@RequestMapping(value = "/ajax/newproductcategory", method = RequestMethod.POST)
public @ResponseBody
Integer newProductCategory(HttpServletRequest request,
@RequestBody ProductCategory productCategory)
Some days ago it worked, now it is not. I'll show more code if needed. Thanks
解决方案I managed out how to make it works. Tell me in case I am wrong.
I used only one way to serialize/deserialize: I removed all annotations regarding this (@JSONSerialize
and @JSONDeserialize
) and registered Serializers and Deserializers in CustomObjectMapper
class.
I didn't find an article explaining this behaviour but I resolved in this way. Hope it's useful.
相关文章