前台表单提交完了以后想返回json数据,但却变成下载框了,网上查了一下基本上都是改SpringMVC 中改配置文件text/html。但是项目做到一半,改了配置文件以后很多地方怕会有问题,今天想到了一个很好的解决方案。(这种方式的好处在于不用前台传值,javabean中的get方法还是可以直接获取值)
之前的代码可以不用变,直接前台改ajax提交
var data=$('#queryCountForm').serialize();//获取表单数据
var json=formToJson(data);//转化为json对象
// json.page="中温";//如果需要另外的参数就以这种格式写,后台直接request可以获取
$.ajax({
url:basePath+"sysman/queryInfo",
dataType:"json",
data:json,//提交以后在bean中会自动set值 直接get就可以获取值了
type:'post',
success:function(json){
if(json.total>0){
searchResultDataGrid(json);
}
}
/**
* form数据转json对象
* 将从form中通过$('#form').serialize()获取的值转成json对象
* @param {} data
* @return {}
*/
function formToJson(data){
data = decodeURIComponent(data,true);//防止中文乱码
data=data.replace(/&/g,"\",\"");
data=data.replace(/=/g,"\":\"");
data="{\""+data+"\"}";
return eval("(" + data + ")");
}
问题解决。