这种类型的提交, 必须配合 multipartResolver,
$(“button:submit”).click(function(){
$.ajax({
type :‘POST‘,
url :‘${sys_config.root_path}/login.html‘,
cache:false,
processData:false,
contentType:false,
data :new FormData($(‘#login_form‘)[0]),
dataType :”json”}).done(function(data) {if(data.success) {
//…}
});return false;
});
需要在Spring配置文件中使用, 没有这个的话, request中的parametersMap是空的
在dependency中要添加commons-fileupload.
在Controller中, 使用正常的方式即可
@RequestMapping(value = {“/login”}, method = RequestMethod.POST, produces=”application/json;charset=UTF-8″)
@ResponseBodypublicString doLoginPost()
{
Map params =getRequest().getParameterMap();
..}
另外在Spring的配置中还需要注意添加 content-negotiation-manager, 没有这个的话, 使用produces=”application/json”会出406错误. 其中关键的一个参数是favorPathExtension, 这个必须为false, 另外ignoreAcceptHeader这个参数不能加, 加上也会导致406.
json=application/json
xml=application/xml
对于普通的提交, 使用这种方式即可, 不需要multipartResolver
$(“button:submit”).click(function(){
$.ajax({
type :‘POST‘,
url :‘${sys_config.root_path}/login.html‘,
cache:false,
data : $(‘#login_form‘).serialize(),//new FormData($(‘#login_form‘)[0]),
dataType : “json”}).done(function(data) {//…
});return false;
});
favorPathExtension
原文:http://www.cnblogs.com/milton/p/4759175.html