我的控制器代码:
@RequestMapping(value = "/rest/auth/admin/test/responseTest", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<ResponseVO> responseTest(@RequestParam("file") MultipartFile file,
@RequestParam(value = "testId", required = true) long testId) {
我已经将多部分解析程序 Bean 添加到我的应用程序上下文中.xml
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
我的脚本代码:
var fd = new FormData();
fd.append('file', $('input[type=file]')[0].files[0]);
fd.append("label", "WEBUPLOAD");
var headers = {};
headers[Constants.XCSRFTOKENCookieName] = util.getCookie(Constants.XCSRFTOKENCookieName);
var url = "rest/auth/admin/test/responseTest?responseTest=123";
var dataType = "json";
var contentType = "application/json";
$.ajax({
url: url,
type: "POST",
data: fd,
dataType: dataType,
async: isAsync,
headers: headers,
enctype: contentType,
processData: false, // tell jQuery not to process the data
contentType: false, // tell jQuery not to set contentType
success: function(result, status, jqXHR) {
resultObj = result;
if (successCallBack != null) {
successCallBack(resultObj);
}
//util.hideLoader();
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("Error : " + errorThrown);
resultObj = jqXHR.responseJSON;
if (errorCallBack != null) {
errorCallBack(resultObj);
}
//util.hideLoader();
}
});
当我调用上述 Ajax 时,我在服务器端收到以下错误。
[org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver] > logException() : 186 - Handler execution resulted in exception: Required MultipartFile parameter 'file' is not present
请帮助我解决此问题。
我本以为这个的contentType标头应该是多部分/表单数据而不是应用程序/json?