C# 使用ajax json C检查数据库中是否存在用户id

C# 使用ajax json C检查数据库中是否存在用户id,c#,jquery,asp.net,ajax,C#,Jquery,Asp.net,Ajax,我想检查在文本框中输入的用户名是否存在于数据库中,而没有回发。我使用的是ajax jquery方法,其背后的ide是,当用户输入名称时,该方法会检查它是否存在于数据库中,如果它存在,标签将显示,如用户名存在,否则标签将被隐藏。现在的问题是,即使数据库中存在用户名,或者页面继续显示警告消息错误。不知道问题是什么 使用ajaxjquery方法 $("#txtteamname").focusout(function () { var txtFld = document.getEl

我想检查在文本框中输入的用户名是否存在于数据库中,而没有回发。我使用的是ajax jquery方法,其背后的ide是,当用户输入名称时,该方法会检查它是否存在于数据库中,如果它存在,标签将显示,如用户名存在,否则标签将被隐藏。现在的问题是,即使数据库中存在用户名,或者页面继续显示警告消息错误。不知道问题是什么

使用ajaxjquery方法

$("#txtteamname").focusout(function () {
           var txtFld = document.getElementById("txtteamname");

           if ( txtFld.value == 'Team Name') {

               this.style.color = '#787878';
           }
           else if (txtFld.value == ' ') {

               this.style.color = '#787878';
           }
           else {
               this.style.color = 'black';
               $.ajax({
                   type: 'POST',
                   contentType: "application/json; charset=utf-8",
                   url: 'teamcheck.asmx/teamnamecheck',
                   data: "{'team':'" + txtFld + "' }",
                   dataType: "json",
                   async: false,
                   success: function (msg) {
                       if (d.msg == 'exist') {
                           $("#Label8").show();
                       }
                   },
                   error: function () {

                      alert("Error");
                   }
               });

           }
C


我认为你的主要问题在于这个代码

data: "{'team':'" + txtFld + "' }",
你是这样描述txtFld的

var txtFld = document.getElementById("txtteamname");
这将使txtFld成为一个HTMLDOM,而不是像您在服务器端所需要的字符串

public static string teamnamecheck(string team)
因此,您的AJAX调用没有到达服务器中的函数,请尝试将您的数据更改为

data: "{'team':'" + txtFld.value + "' }",
为了确保它命中服务器,请在服务器代码中的任意位置放置一个断点

public static string teamnamecheck(string team) {
    ... // your code, place the breakpoint here
}
并在teamcheck.asmx中取消对此行的注释


打开调试工具按f12键,检查网络选项卡中是否有错误,在代码中添加断点,查看是否命中断点,如果在调试工具中看到右上角的红十字,单击它,查看错误消息是什么您可以在浏览器中手动点击teamcheck.asmx/teamnamecheck服务吗?是否正在调用方法???@user3001945将您的错误更改为此错误:函数XMLHttpRequest,textStatus,errorSprown{alertXMLHttpRequest;alerttextStatus;AlertErrorSprown;},每个错误的结果是什么?这与实际问题无关,但请阅读SQL注入,更好地命名变量,从这个方法中提取连接字符串。我已经做了您建议的更改,但仍然没有成功,并且放置了一个断点,但是函数调用没有命中目标server@JijithtxtFld.value的结果是什么?然后尝试将公共静态字符串teamnamecheckstring团队更改为公共字符串teamnamecheckstring团队,并取消对teamcheck.asmx中的此行[System.Web.Script.Services.ScriptService]的注释
public static string teamnamecheck(string team) {
    ... // your code, place the breakpoint here
}
[System.Web.Script.Services.ScriptService]