我在JQuery 1.8的HTML頁面中有一個按鈕。 我正在使用Spring MVC 4.1來處理請求。Spring MVC&JQuery AJAX Post只能使用@ResponseBody
var test= "foo";
$.ajax({
type : "POST",
async : false,
url : "rest/ping",
data : JSON.stringify(test),
dataType : "json" ,
contentType : "application/json",
error : function(jqXHR, textStatus, errorThrown) {
alert(errorThrown + " -- " + jqXHR.responseText);
},
success : function(data) {
console.log("bar");
}
});
彈簧側:
@Controller
@RequestMapping("/test")
public class DummyController {
@RequestMapping(value = "/rest/ping", method = RequestMethod.POST)
@ResponseBody
public void ping(@RequestBody String test) throws ServiceException{
// nothing of concern
}
}
如果我刪除的@ResponseBody系統無法找到映射。如果我在請求主體註釋中添加'(required = false)',則映射被找到,但是ajax調用失敗,因爲調用映射的url之後,系統調用「test/rest/ping/rest/ping」。
如果您有關於JQuery和Spring MVC協同工作的文檔,請將它們添加到此問題中。我無法找到描述這種奇怪行爲的有效示例。 如果您有任何問題,請詢問。 謝謝大家的時間。
你能提供整個控制器的代碼嗎?它可能與它的註釋不一致。 – tonnoz