我试图做一个REST调用我的春天控制器上的JBoss
@RequestMapping(value = "/myMethod", method = RequestMethod.POST)
public
@ResponseBody
String myMethod(@RequestBody MyClass myClass) {
String json = null;
String METHOD_NAME = "getAuditForRecordId";
Gson gson = new GsonBuilder().create();
try {
json = gson.toJson("success");
}
return json;
}
我的角度支柱呼叫
$http.post(<URL to myMethod>, postData,
{
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
}).success(function() {
d.resolve(response);
}).error(function() {
d.reject();
}
);
是遇到400错误的请求错误。我有一个CORSFilter我的JBoss应用程序
@Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse response=(HttpServletResponse) resp;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Accept, Content-Type");
chain.doFilter(req, resp);
}
GET方法在同一个控制器内工作正常。但是这个POST失败了。
我的POST JSON对象具有嵌套的对象。
我也尝试过从Chrome的REST客户端进行相同的POST调用,但仍然得到相同的错误。有人能指出我在这里犯的明显错误吗?
GETs在同一个控制器工作正常。只有POST失败。我相信这与我发布的数据有关。你是这么认为的吗? – yalkris
在你的控制器的春天MVC你把生产= {“application/json”}?看到我的例子完整,适用于我,我每天都使用,也许你不包括杰克逊马普宾。你是? – HeduGogo