日期:2014-05-16  浏览次数:20645 次

ajaxget方式传值乱码
var params = {};
params.mileVno =encodeURI($("#search_vno").val().trim());
params.startIndex = startIndex;
params.page = PAGE_PARAM.curPage;
params.pageSize = PAGE_PARAM.pageSize;
$.ajax({
	type : "get",
	url : "/mvc/statement/mile/list"
		+"?ts="+new Date().getTime(),
	dataType : "json",
	contentType:'application/json;charset=UTF-8', 
	data : params
}).done(function(result){
		//do Something
}).fail(function(){
	$.showAlert("网络繁忙,请稍后再试!", "确定");
});	

这里面使用了get由于出现了乱码,因此就强制加了contentType字段硬编码为UTF-8
然后在后台处理的地方再解码,下面以springmvc的controller的形式展示。
@RequestMapping("/statement/mile/list")
public @ResponseBody
ExecuteResult listMile(@RequestParam(value = "mileVno", required = false) String mileVno,@RequestParam(value = "startIndex", required = false) String startIndex,
@RequestParam(value = "page", required = false) String page,@RequestParam(value = "pageSize", required = false) String pageSize) {
		ExecuteResult eResult;
		try {
			mileVno= URLDecoder.decode(mileVno,"UTF-8");
			DetachedCriteria detachedCriteria = DetachedCriteria.forClass(VmMile.class);
			if (StringUtil.isNotBlank(mileVno)) {
				detachedCriteria.add(Restrictions.like("mileVno", "%"+mileVno+"%"));
			}
			detachedCriteria.addOrder(Order.desc("mileId"));
			pageList = baseService.findPageByCriteria(detachedCriteria, Integer.parseInt(pageSize), Integer.parseInt(startIndex));
			eResult = new ExecuteResult(true, CommonConst.SUCCESS_DESC, pageList);
		} catch (Exception e) {
			LOG.error("list statement mile info error--->>>", e);
			eResult = new ExecuteResult(false, CommonConst.ERR_DESC);
		}
		return eResult;
	}