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

向Spring POST控制器发送JSON对象

呼延弘方
2023-03-14

我试图通过AJAX向Spring控制器发送JSON对象,但收到错误415:

“服务器拒绝了此请求,因为请求实体的格式不受请求方法的请求资源的支持。”

@RequestMapping(
    value = "/ab/greeting", 
    method=RequestMethod.POST, headers = "Accept=*/*",
    produces = "application/json")
public String greetingSubmit(@RequestBody Person p1) {
    return "result";
}
package ab;

public class Person {

    String fname;
    String lname;
} 

下面是我的javascript调用-

function getGreeting() {
        $.ajax({
            url : "/ab/greeting",
            contentType: "application/json",
            type: 'POST',
            async: false,
            data: JSON.stringify({ fname: "John", lname: "Doe" }),
            success: function (data) {
            }
        });
    }

这里是我的依赖项杰克逊相关的依赖项在我的POM-

<dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
        </dependency>

        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
        </dependency>

讽刺的是,当我试着穿Spring靴的时候,它就起作用了。

共有1个答案

邓毅
2023-03-14

添加consumes属性

@RequestMapping(value = "/ab/greeting", method=RequestMethod.POST,headers = "Accept=*/*",produces = "application/json", consumes="application/json")
public String greetingSubmit(@RequestBody Person p1) {
    return "result";
}
 类似资料:
  • 我试图将JSON发送到Spring MVC控制器。在Spring MVC方面,所有的配置都是正确的。 下面是代码,但似乎没有运行: 你知道我哪里出错了吗?我对JSON是新手。我试图将JSON发送到Spring MVC控制器。 当调用/application/run/save时,我会得到一个JSON响应。但是,@RequestBody不能工作。 我还是没有运气。读过一些很多类似的问题。需求是服务器将

  • 我正在使用spring控制器返回一个简单的列表对象。我已经用@ResponseBody注释了正确的方法,但它仍然不能从ArrayList转换。我还添加了jackson-mapper-asl jar。 我的控制器代码是 rest-servlet.xml 原木 我到底错过了什么?

  • 我在将对象列表从Thymeleaf保存到控制器时遇到了一个大问题。thymeleaf中的对象列表由Jquery生成。但我不知道如何将数据传输到控制器,对象列表不知道大小。因为用户可以随时添加它。请帮助我将thymeleaf中的列表对象发送给控制器。 我创建了一个具有1个属性的新类:ArrayList loaiDoans;“LoaiDoan”是我想要保存的对象。使用该类是将列表“loaidon”从t

  • 我有窗体和相应的控制器,对象列表被传递给它们。 实体类: 控制器: 形式: 我假设表单中的百里叶th:each循环变量不能是th:object=${ent2}(因为如果我这样做,select form返回null)。而th:value="${ent2.name}返回字符串值。所以我不得不将@RequestParam(th:value)发送给“save”方法。但是在这种情况下,我必须对数据库进行额外

  • 问题内容: 我正在编辑内置的表单。 我在对话框中显示该表单,然后提交。 数据已正确输入数据库。 但是我不知道是否需要将一些寄回。其实我对事情有点困惑。 假设我在表中使用``jQuery添加了一行,当我提交表单时,然后在提交数据之后,我想发回那些行数据,以便我可以动态添加表行以显示添加的数据。 我很困惑如何获取这些数据。 这是我当前的代码: 这只是带有成功消息的模板。 问题答案: Symfony 2

  • 问题内容: 我正在努力,并努力通过JSON将数组发送到MVC控制器动作。 这是我所拥有的以及我已经尝试过的… 我该怎么做 ? 编辑:建议从顶部发送“按原样” 发送的邮件-不起作用。我在jquery框架的某处收到一个奇怪的异常:( 我认为这意味着它试图将null分配给它不能分配的东西。 编辑:我正在使用MVC2不是3 Edit2:@Monday的答案之后- 问题是由于我如何构建数组 而并非如此-关于