天天看點

spring mvc ajax 送出,SpringMVC的Ajax送出

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