我試圖做一個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