大家有没有AJAX验证注册时重复用户(一定要支持中文的) 网上好多都不支持中文 已输入中文就不能判断了
大家有没有AJAX验证注册时重复用户(一定要支持中文的) 网上好多都不支持中文 已输入中文就不能判断了先给大家个例子 英文和数字没问题 一遇到汉字就不行了 大家有解决办法没:
--------------------编程问答-------------------- 中文参数 加密 后台接收到后解密 你试试
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>AJAX注册验证是否重复用户</title>
</head>
<body>
<script type="text/javascript">
var xmlHttp; //AJAX核心对象
var flag; //定义标志位
function createXMLHttp()
{
if(window.XMLHttpRequest) //判断当前浏览器类型
{
xmlHttp=new XMLHttpRequest();//表示当前是FIREFOX内核浏览器
}
else //表示当前是IE内核
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
function checkUsername(username)
{
createXMLHttp(); //建立xmlHttp核心对象
//设置一个请求,通过地址重写的方式将userid传递到JSP中
xmlHttp.open("POST","CheckUser?username="+username);
//设置请求完成之后处理的回调函数
xmlHttp.onreadystatechange=checkUseridCallback;
xmlHttp.send(null); //发送请求,不传递任何参数
document.getElementById("msg").innerHTML="正在验证''''''";
}
function checkUseridCallback() //定义回调函数
{
if(xmlHttp.readyState==4) //数据返回完毕
{
if(xmlHttp.status==200) //HTTP操作正常
{
var text=xmlHttp.responseText; //接受返回的内容
if(text=="true")
{
flag=false; //无法提交表单
document.getElementById("msg").innerHTML="用户ID重复,无法使用";
}
else
{
flag=true; //可以提交表单
document.getElementById("msg").innerHTML="此用户ID可用";
}
}
}
}
function checkForm()
{
return flag;
}
</script>
<form action="CheckUser" method="post" onsubmit="return checkForm()">
用户名: <input type="text" name="username" onblur="checkUsername(this.value)"> <span id="msg"></span> <br>
密码: <input type="text" name="password"><br>
邮箱: <input type="text" name="email"> <br>
<input type="submit" value="注册">
</form>
</body>
</html>
--------------------编程问答-------------------- 我的处理方法是在后台接收的时候加上:
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("UTF-8");
前台的ajax加上:
contentType: "application/x-www-form-urlencoded; charset=utf-8",
我用的是JQ的框架 你现在后台接收的时候加上那句话试试 --------------------编程问答-------------------- js不是有那个encodURL,改代码的时候测试过那么写肯定是可以的 --------------------编程问答-------------------- 中文使用encode
js进行encode
var url = "CheckUser?username=中文";
xmlHttp.open("POST",encode(url));
解密使用username = URLDecoder.decode(username);
另外一般ajax 有成熟的jquery ajax框架
里面可以设置编码集。 --------------------编程问答--------------------
encode() - > encodeURI() --------------------编程问答-------------------- 哦 对了 要经过2次encodeURI
encodeURI(encodeURI(url)) --------------------编程问答-------------------- 'cp/findCpNameISexist.h?cpName='+encodeURIComponent(encodeURIComponent($("#cpName").val())) --------------------编程问答-------------------- 两次encodeURI(encodeURI(url))后台用username= URLDecoder.decode(username,"UTF-8");这样就可以了
补充:Java , Java EE