javascript处理程序执行导致异常:所需的MultipartFile参数“file”不存在
我的控制器代码:
@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) {
我已经将multipartresolverbean添加到我的应用程序上下文中。xml
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
我的javascript代码:
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
请帮我解决这个问题
# 1 楼答案
我本以为它的contentType头应该是multipart/form data,而不是application/json