這種類型的送出, 必須配合 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