Spring MVC在接管汇合申请参数时,须要在Controller办法的汇合参数里前增加@RequestBody,而@RequestBody默认接管的enctype (MIME编码)是application/json,因而发送POST申请时须要设置申请报文头信息,否则Spring MVC在解析汇合申请参数时不会主动的转换成JSON数据再解析成相应的汇合。
在应用easyUi的datagrid申请数据,其中默认的形式是:application/x-www-form-urlencoded; charset=UTF-8
然而后端要求用
application/json
。datagrid并没有配置content-type的属性。
解决形式
通过一上午钻研,可用如下形式,重写datagrid类中的loader办法批改其配置。
$("#grid").datagrid({
queryParams:params,
...//其余参数配置
loader : function(param, success, error) {
$.ajax({
type : 'post', //申请形式
url : 'xxxxxx', //申请地址
dataType : 'json',
contentType : 'application/json;charset=utf-8', // 设置申请头信息
data : JSON.stringify(param),
success : function(result) {
success(result);
}
});
}
});
发表回复