做一个用户注册,用户输入用户名之后,可以通过点击“检测用户”来判断用户名是否存在。我是这样写的,但是总提示错误:
Line:54
Char:17
Code:0
Error:系统错误: -1072896748。
我测试了一下,错误出现在最后一句:
checkUserNameMsg.innerHTML=http_request.responseText;//服务器端返回的信息
这一句有错误,我不知道怎么改正,好像是 http_request.responseText 有问题
下面是代码:
Line:54
Char:17
Code:0
Error:系统错误: -1072896748。
我测试了一下,错误出现在最后一句:
checkUserNameMsg.innerHTML=http_request.responseText;//服务器端返回的信息
这一句有错误,我不知道怎么改正,好像是 http_request.responseText 有问题
下面是代码:
-
var http_request=false;
function send_request(url){
http_request=false;
if (window.XMLHttpRequest){ //创建XMLHTTP对象 适用于IE
http_request=new XMLHttpRequest();
if (http_request.overrideMimeType){
http_request.overrideMimeType("text/xml");
}
}else if (window.ActiveXObject){ //创建XMLHTTP对象 适用于Mozilla
try{
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
if (!http_request){
alert("创建对象失败!")
return false;
}
http_request.onreadystatechange=processRequest;
http_request.open("GET",url,true);
http_request.send(null);
function processRequest(){ //回调函数,这里是重点,服务器端与客户端交互的状态在这里进行判断
if (http_request.readyState==4){
if (http_request.status==200){
checkUserNameMsg.innerHTML=http_request.responseText;//服务器端返回的信息
}
}
}
}
function checkUserNameAction(){
if(orderForm.username2.value == "" || orderForm.username2.length == 0){
alert("请填写用户名!");
return;
}
checkUserNameMsg.className = "msg2";
checkUserNameMsg.innerHTML = "检测中,请等待...";
var url = "checkUserName.asp?userName=" + orderForm.username2.value;
send_request(url);
}
调用的时候,就是在button “检测用户”的onClick事件中加入 checkUserNameAction 就可以了 后来经多方查证,原因是AJAX默认的是UTF-8编码,我的是GB2312,两边的字符集不一致而导致了该错误 有网友说在页首加入 <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 这个我没有试过,我用的是在页首(checkUserName.asp)加入 <% Response.CharSet = "gb2312" Response.ContentType = "text/xml" %>
的方法来解决的