ajax编码传输 : 解决中文参数乱码
前台页面:
encodeURI(encodeURI(val)) // jsp页面中对参数要进行两次编码
function validate(val){
var req = new XMLHttpRequest();
req.open("get", "role/validate?rolename="+encodeURI(encodeURI(val))+"&date="+new Date(), true);
req.send();
req.onreadystatechange = function(){
if(req.status=="200" && req.readyState == "4"){
if(req.responseText=="ok"){
document.getElementById("nameTip").innerHTML = "<font color='green'>角色名可以使用</font>";
}else if(req.responseText=="no"){
document.getElementById("nameTip").innerHTML = "<font color='red'>角色名已存在</font>";
}
}
}
}
后台:
rolename = URLDecoder.decode(rolename, "utf-8");//后台程序对传递过来的参数进行解码处理
@RequestMapping("/validate")
@ResponseBody
public String validate(String rolename){
try {
rolename = URLDecoder.decode(rolename, "utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("-------------->" + rolename +"<---------------");
Rolebean role = roleService.queryByRolename(rolename);
if(role != null){
return "no";
}else{
return "ok";
}
}