永发信息网

.net手写AJAX在火狐中不支持(手写提交到ASHX)

答案:1  悬赏:0  手机版
解决时间 2021-04-27 08:43

做一个AJAX验证用户名是否存在,在ie中正常,在火狐中不正常,废话不说

JS代码

 // JScript 文件
var xmlDom = false //XMLHTTP对象
try
{
   xmlDom = new ActiveXObject("Msxml2.XMLHTTP");//IE高版本创建XMLHTTP
  
}
catch(E)
{
    try
    {
      xmlDom = new ActiveXObject("Microsoft.XMLHTTP");//IE低版本创建XMLHTTP
    }
    catch(E)
    {
      xmlDom = new XMLHttpRequest();//兼容非IE浏览器,直接创建XMLHTTP对象
    }
}
  
    //判断表单
      //注册时判断邮箱是否符合规范,是否已经被注册
function j_loginname()
{
    var name = document.getElementById("txtloginname").value;
    if(name==""){
    document.getElementById("CheckLoginName").innerHTML = "<span color: #333; font-size: 10pt; font-famil: Arial, Helvetica, sans-serif\"><font color=\"red\">用户昵称不能为空!</font></span>";
 return false;
 }
 if(!isEmail(name))
 {
    document.getElementById("CheckLoginName").innerHTML = "<span color: #333; font-size: 10pt; font-famil: Arial, Helvetica, sans-serif\"><font color=\"red\">请输入正确的邮箱!</font></span>";
    return false;
 }
 checkusername(name);
}


//向服务器发送请求,检测邮箱是否已经被注册
function checkusername(name)
{
var d = new Date();
var strURL = "Register.ashx?type=1&username=" + name + "&guid=" + d.getTime();
xmlDom.Open("get",strURL , true);
xmlDom.onreadystatechange = fnRun1;
xmlDom.Send(xmlDom);
document.getElementById("CheckLoginName").innerHTML = "<span><font color=\"red\">正在检测邮箱是否重复...请稍候...<font></span>";

}

 

//点击注册按钮后 回调的函数,用于显示服务器返回的结果
function fnRun1()
{
if (xmlDom.readyState == 4 && xmlDom.status == 200)//如果请求已经加载并且服务器返回成功
{
 var str = xmlDom.responseText;  //保存已经查询过的用户名,下次直接返回
 
 switch (str)
 {
  case "0"://数据出错
   document.getElementById("CheckLoginName").innerHTML = "<span><font color=\"red\">数据出错无法识别,请与管理员联系!<font></span>";
  
   break;
  case "1"://用户名已经注册
   
   document.getElementById("CheckLoginName").innerHTML = "<span color: #333; font-size: 10pt; font-famil: Arial, Helvetica, sans-serif\"><font color=\"red\">对不起!您注册的用户已经存在!</font></span>";
   
   break;
  case "2"://可以注册
   
   document.getElementById("CheckLoginName").innerHTML = "<span color: #333; font-size: 10pt; font-famil: Arial, Helvetica, sans-serif\"><font color=\"red\">恭喜你可以正常注册!</font></span>";
  
   break;
 }
}       
}

ashx代码

<%@ WebHandler Language="C#" Class="Register" %>

using System;
using System.Web;
using Y.BLL;
using Y.Model.Member;

public class Register : IHttpHandler {
   
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/xml";

        MemberManager membermanager = new MemberManager();
        string username = context.Request.QueryString["username"];
        string type=context.Request.QueryString["type"];
        switch (type)
        {
            case "1":

                int result = membermanager.SelMemberByName(username);
                if (result != 0)
                {
                    context.Response.Write("1");//用户名被占用
                    context.Response.End();
                }
                else
                {

                    context.Response.Write("2"); //用户名可以注册
                    context.Response.End();
                }
                break;

html 代码:onblur="j_loginname()"

最佳答案

不同浏览器对JavaScript的支持不同,与c#无关。你可以在JavaScript里加一个if语句判断是哪个版本的浏览器,对不同浏览器使用不同的JavaScript代码。这就是JavaScript的劣势。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
对喜欢的人我应当说那先关心的话
视眼膜脱落怎么办?
要怎样学画涂鸦
哪个牌子的网球拍好
刚出生的婴儿枕用黄豆做的高枕头会出现什么问
社旗县邮政局大冯营支局地址在什么地方,想过
什么东西只能上升永不下降
水浒王干娘她儿叫什么名
爱情里年龄是问题吗?男女之间多大差距是合适
为什么会给我的问问等级降低啊?
单项式、多项式的加、减、乘、除
最近喝农夫山泉发现在瓶盖内侧有个三角号,应
玩具会升值吗
求一好点的网游 花钱少的 升级快的
我经常梦见我去世的老爸来找我
推荐资讯
这个那画的不好?
测量一个正方体腊块的体积,有以下器材
毕业论文如何做目录,论文目录怎么弄?
最新上映的杰克逊记录片在哪能找到
里方村地址在哪,我要去那里办事
俏皮的生日祝福语,老公生日祝福语俏皮话
再次请教英语题
南部那儿有买锅盔!
谁知道赣州和信丰那个地方有旅行社
高中复读这一年时间该怎么安排?
齐肩短发烫内扣多少钱,剪短发烫内扣大约多少
安静与沉默是在表明我爱她吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?