小编典典

POST JSON 失败,出现 415 Unsupported media type, Spring 3 mvc

all

我正在尝试向 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)

前几天有效,现在无效。如果需要,我会显示更多代码。


阅读 62

收藏
2022-07-16

共1个答案

小编典典

我设法使它工作。告诉我,以防我错了。@JSONSerialize我只使用了一种方法来序列化/反序列化:我删除了关于这个
(和)的所有注释,并在课堂上@JSONDeserialize注册了序列化器和反序列化器。CustomObjectMapper我没有找到解释这种行为的文章,但我以这种方式解决了。希望它有用。

2022-07-16