当前位置: 首页 > 知识库问答 >
问题:

POST JSON失败,出现415个不受支持的媒体类型,Spring 3 mvc

璩正志
2023-03-14

我正在尝试向servlet发送POST请求。请求通过jQuery以以下方式发送:

var productCategory = new Object();
productCategory.idProductCategory = 1;
productCategory.description = "Descrizione2";
newCategory(productCategory);
function newCategory(productCategory)
{
  $.postJSON("ajax/newproductcategory", productCategory, function(
      idProductCategory)
  {
    console.debug("Inserted: " + idProductCategory);
  });
}
$.postJSON = function(url, data, callback) {
    return jQuery.ajax({
    'type': 'POST',
    'url': url,
    'contentType': 'application/json',
    'data': JSON.stringify(data),
    'dataType': 'json',
    'success': callback
    });
};
{"idProductCategory":1,"description":"Descrizione2"}
    @RequestMapping(value = "/ajax/newproductcategory", method = RequestMethod.POST)
public @ResponseBody
Integer newProductCategory(HttpServletRequest request,
        @RequestBody ProductCategory productCategory)

共有1个答案

郑光济
2023-03-14

我以前在Spring@ResponseBody中遇到过这种情况,这是因为没有随请求一起发送accept头。使用jQuery设置Accept header可能很麻烦,但这对我的源代码有效

$.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
    });
};

@RequestBody使用Content-Type头来确定请求中从客户端发送的数据的格式。@ResponseBody使用accept头来确定在响应中将数据发送回客户端的格式。这就是为什么你需要两个头。

 类似资料:
  • 问题内容: 我正在尝试向Servlet发送POST请求。通过jQuery通过以下方式发送请求: newCategory在哪里 而postJSON是 使用firebug,我看到正确发送了JSON: 但是我得到415不支持的媒体类型。Spring MVC控制器具有签名 几天前它起作用了,现在却不起作用了。如果需要,我将显示更多代码。谢谢 问题答案: 我设法使它起作用。告诉我万一我错了。我只使用了一种序

  • 问题内容: 自数小时以来,我一直在尝试纠正http错误,但它仍显示不支持的页面。我在邮递员中添加标题。 这是我的Java代码 这是我的档案 问题答案: 通过和如何在响应流和请求流之间对对象进行序列化和反序列化。 将会发生的是,将从提供者的注册表中进行搜索,以查找可以处理的媒体类型。如果找不到,则Jersey无法处理该请求,并将发送415不支持的媒体类型。通常,你还应该在服务器端记录一个异常。不知道

  • 我已经创建了一个示例web服务来进行post调用。 我使用的是Jersey JAX-RS和Maven。

  • 问题内容: 我正在尝试使用jQuery 1.6(Jackson 2.1.1 和Spring 3.2.0 )通过JSON通过该方法向数据库中插入和/或更新数据。 JS代码如下。 通过URL映射的Spring控制器内部的方法如下。 服务器按照问题的含义进行响应, 415不支持的媒体类型 标头信息如下所示。 整个文件如下。 当我删除一个方法参数并仅用于接受请求参数时,它可以工作。 问题答案: 浏览器发送

  • 问题内容: 我正在使用Spring 3.2,并尝试使用ajax发布请求来提交json对象数组。如果相关,我转义了所有特殊字符。 我的HTTP状态为415。 我的控制器是: jQuery是: 我发布的数组中的对象之一的示例是以下json: 错误是: 为什么会发生此错误-有人知道吗? 问题答案: 您可以尝试使用。它没有任何问题