我正在尝试向 servlet 发送 POST 请求。请求是通过 jQuery 以这种方式发送的:
var productCategory = new Object(); productCategory.idProductCategory = 1; productCategory.description = "Descrizione2"; newCategory(productCategory);
newCategory 在哪里
function newCategory(productCategory) { $.postJSON("ajax/newproductcategory", productCategory, function( idProductCategory) { console.debug("Inserted: " + idProductCategory); }); }
而 postJSON 是
$.postJSON = function(url, data, callback) { return jQuery.ajax({ 'type': 'POST', 'url': url, 'contentType': 'application/json', 'data': JSON.stringify(data), 'dataType': 'json', 'success': callback }); };
使用 firebug,我看到 JSON 发送正确:
{"idProductCategory":1,"description":"Descrizione2"}
但我得到 415 Unsupported media type。Spring mvc 控制器具有签名
@RequestMapping(value = "/ajax/newproductcategory", method = RequestMethod.POST) public @ResponseBody Integer newProductCategory(HttpServletRequest request, @RequestBody ProductCategory productCategory)
前几天有效,现在无效。如果需要,我会显示更多代码。
我设法使它工作。告诉我,以防我错了。@JSONSerialize我只使用了一种方法来序列化/反序列化:我删除了关于这个 (和)的所有注释,并在课堂上@JSONDeserialize注册了序列化器和反序列化器。CustomObjectMapper我没有找到解释这种行为的文章,但我以这种方式解决了。希望它有用。
@JSONSerialize
@JSONDeserialize
CustomObjectMapper