我最近将一个项目从春季3搬到了春季4,我的宁静控制者不再工作了。
我的方法如下:
@RequestMapping(value = "/app/barcode/generate", method = RequestMethod.POST)
@ResponseBody
public String doStuff(@RequestBody MyDTO dto) {
return "Boo";
}
但是当我从javascript调用它时,我收到此错误:
处理程序执行导致异常:内容类型' application / json'不支持
如果删除@RequestBody,则param始终为null。
我的ajax调用配置如下
$.ajax({
url : url,
type : 'POST',
cache : false,
contentType: "application/json",
headers : {
"Cache-Control" : "no-cache,no-store,must-revalidate",
"Pragma" : "no-cache",
"Expires" : "-1",
"X-Content-Type-Options" : "NOSNIFF",
"X-XSS-Protection" : "1",
"X-Frame-Options" : "SAMEORIGIN"
},
dataType: 'json',
data : requestData,
beforeSend : function(xhr) {
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
xhr.setRequestHeader(header, token);
}
});
这在春季3完全没问题。主要区别在于我现在正在使用Java Config。