在网上找到一个ajax的例子,但是怎么运行不通

weike021996 2012-03-16 09:14:17
后台:
protected void Page_Load(object sender, EventArgs e)
{
//这里你可以连至用户表检查是否存在这个用户名,当然如果你用membership中的验证方法会更简洁.
if (Server.HtmlEncode(UserName) == "123456")
Response.Write("regok");
else
Response.Write("error");
}


前台:
function ValidateUser()
{
//获得用于显示验证是否通过的详细信息
var obj=document.getElementById("default");
//获取用户输入的用户名的值
var str=document.getElementById("txtUserName").value;
//定义一个bool型变量
var chk=true;
if (chk){
//因为输入的用户名可能含有中文,所以将其解码
var username=escape(str);
//用于验证用户名的后台页面
var usrurl="Validate.aspx?UserName="+username;
//获取从验证页面中异步传输过来的值
var sta=GetResponseText(usrurl);
//如果异步传输失败
if(sta==false){
chk=true;
obj.className="d_ok";
obj.innerHTML='该会员未能检测,可以尝试注册。';
}
//异步传输成功
else{
//假如传过来的值的开始位置是"regok",这个值是在验证页面Response.Write出来的值,如果是regok则表示验证通过,否则的话就是验证失败.
if(sta.indexOf("regok")!=-1){
alert("ok");
//验证通过
chk=true;
//用于显示验证是否通过的详细信息加上刚刚所定义正确时的样式
obj.className="Right";
obj.innerHTML='该会员名可以注册。';
}else{
alert("no");
//验证未通过
chk=false;
//用于显示验证是否通过的详细信息加上刚刚所定义错误时的样式
obj.className="Error";
obj.innerHTML='该会员名已经被注册。';
}
}
}else{
obj.className="Error";
}
return chk;
}
function GetResponseText(url)
{
//定义一个http_request变量
var http_request;
if (window.XMLHttpRequest) {
//对于Mozilla、Netscape、Safari等浏览器,创建XMLHttpRequest对象
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
//如果服务器响应的header不是text/xml,可以调用其它方法修改该header
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) {
// 对于Internet Explorer浏览器,创建XMLHttpRequest
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
alert("1");
} catch (e) {
try {
alert("2");
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
//打开验证页面的地址
http_request.open('GET', url, false);
http_request.send(null);
if (http_request.readyState == 4)
   {
   alert("3");
   // 收到完整的服务器响应
   if (http_request.status == 200) {
   alert("4");
   //HTTP服务器响应的值OK
     var requestdoc = http_request.ResponseText;
    
     alert(requestdoc);
}
    else {
     requestdoc = "error";
    }
   }
return requestdoc;
}


</script>


也不报错,alert一下,http_request.ResponseText 为underfine 。什么原因
...全文
152 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Im_Sorry 2012-03-17
  • 打赏
  • 举报
回复
最后别用JS。兼容性很戳! 如果不是资深的JS使用者,兼容够你闹的了。换成jquery把!
kiddkyd 2012-03-17
  • 打赏
  • 举报
回复
http_request.status == 200
亮点,经常不会出现200
色拉油 2012-03-17
  • 打赏
  • 举报
回复
JQuery使用Ajax的一个简单应用

http://www.google.com.hk/search?sourceid=chrome&ie=UTF-8&q=jQuery%E4%BD%BF%E7%94%A8ajax[Quote=引用 2 楼 weike021996 的回复:]

给个例子呗
[/Quote]
子夜__ 2012-03-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 weike021996 的回复:]

给个例子呗
[/Quote]
http://www.cnblogs.com/yeer/archive/2009/07/23/1529460.html
shanechan517 2012-03-16
  • 打赏
  • 举报
回复
这例子我怎么看着这么眼熟 哪本书上的吧..
yyl8781697 2012-03-16
  • 打赏
  • 举报
回复
楼主断点调式看看,有没有访问到Validate.aspx这个页面,还有需在 Validate.aspx这个页面的pageload方法的下面加个Response.End();让后面html不输出,如果这些还不行的话不知道楼主是什么浏览器调式的,可能你用的浏览器不支持你创建的xmlhttp对象。
再给LZ来个jquery板的ajax

$.get("Validate.aspx",{“UserName”:username},function(result,status){
if(status=="success"){
alert(result);//弹出返回的值
}else{
alert("ajax请求失败或者超时");
}
})

够简单吧
weike021996 2012-03-16
  • 打赏
  • 举报
回复
给个例子呗
yangchun1213 2012-03-16
  • 打赏
  • 举报
回复
楼主建议你换用Jquery中的ajax,好用多了,你试试就知道了。

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧