【发布时间】:2015-12-03 12:07:52
【问题描述】:
我正在向我的 Spring MVC 控制器发送一个 POST 请求。我已经调整了好几个小时的代码,并从控制器中收到了各种错误,例如 400、404 或 415。
最后,现在我的 POST 请求正在运行(因为控制器将所有数据记录到控制台),但 Ajax successcallback 从未触发,但 fail 检查功能始终是。
我的 Ajax 请求:
$.ajax({
'type': 'POST',
'url': '/iQuality/post-test',
'data': $("#wizard-form").serializeJSON(),
'dataType': 'json',
'headers': {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
'success': function(){
console.log('mandarina');
}
})
.fail(alert("Error!"));
我的 Spring 控制器:
@RequestMapping(value = "/post-test", method = RequestMethod.POST, headers = { "Content-type=application/json" })
@ResponseStatus(value = HttpStatus.OK)
private @ResponseBody void handleWizardPost(@RequestBody WizardForm1 wf){
logger.debug("[post-test] : Called route");
logger.info(wf.getSistema());
logger.info(wf.getNombrePase());
logger.info(wf.getEsAtipico());
}
顺便说一句,控制器应该发送一个空响应(我希望视图保持在同一页面中,不刷新页面)。
【问题讨论】:
-
显示什么错误码?您是否在启用 csrf 的情况下使用 spring security?
-
这是响应数据类型的问题。请参阅下面的答案。
-
你有
dataType:"json"并且你没有从你的控制器生成任何 json。