-1

我正在向 POST url 发送一些 json 数据。此代码在本地环境(tomcat + windows)中运行良好,但不适用于生产环境(Tomcat + linux)。已经提到了各种链接,但没有一个帮助我。

发布带有生产环境的操作系统,我也很早就从服务器上删除了一些文件,我怀疑tomcat可能已经损坏,但其余所有url都工作正常。这是我正在做的新发展。

如果我通过 Firefox 休息客户端,也会有相同的行为。

错误

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

jQuery代码

$.ajax({
        type : "POST",
        url : "/add",
        data : JSON.stringify(data),
        dataType: 'json',
        headers: { 
            'Accept': 'application/json',
            'Content-Type': 'application/json' 
            },
        success : function(resp) {
            console.log(resp);          
        }
    });

弹簧控制器

@RequestMapping(value = "/add", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
    public @ResponseBody String addDishDetails(
            @RequestBody MyPojo pojo) {
        return "success";
    }

pom.xml

还添加在罐子下面

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

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.5.3</version>
        </dependency>
4

2 回答 2

0

以上评论和答案值得一读,可能是少数情况的解决方案。

就我而言,我有一个财产Map<String,String>,我需要忽略这一点。

所以我补充说,

@JsonIgnore
Map<String,String>
于 2016-08-06T04:01:29.217 回答
0

从错误中它说客户端没有以服务器期望的类型发送请求,客户端发送 json 并且我们已经定义cosumes=MediaType.APPLICATION_JSON_VALUE如果我们仅将其替换为MediaType.APPLICATION_JSON并且您指定了接受参数,所以要么删除它或将生产属性添加到控制器中的application/json

于 2016-08-05T19:10:11.247 回答