我正在向POST网址发送一些json数据。此代码在本地环境(tomcat + windows)中工作正常,但不适用于生产环境(Tomcat + linux)。 已经提到各种链接,但没有人帮助我。
使用生产环境发布操作系统,我也很久以前从服务器上删除了一些文件,我怀疑tomcat可能已经损坏,但是所有网址都正常工作。这是我正在做的新发展。
如果我通过firefox rest客户端点击也会有相同的行为。
错误
服务器拒绝了此请求,因为请求实体的格式不受所请求方法所请求资源的支持
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);
}
});
Spring控制器
@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>
答案 0 :(得分:0)
从错误中说,客户端没有按服务器期望的类型发送请求,客户端发送json,我们已经定义 cosumes = MediaType.APPLICATION_JSON_VALUE 如果我们用替换它仅限MediaType.APPLICATION_JSON ,并且您还指定了accept参数,以便将其删除或将produce属性添加到控制器中的 application / json 。
答案 1 :(得分:0)
上述评论和答案值得一读,可能只是少数案例的解决方案。
在我的情况下,我有一个属性Map<String,String>
,我需要忽略它。
所以我补充说,
@JsonIgnore
Map<String,String>