2017-01-20 10 views
0

私はデータベースにuserNameが存在するかどうかをチェックするWebサービスを持っています。サービスは正常に動作しています。問題は、Ajax関数を使用して呼び出すときです。私の場合にはある偽常にユーザー名が使用されていないことを示し、それはこれが私のサービスコードAjax関数は常にfalseを返します

[ScriptService] 
public class RegisterationService : System.Web.Services.WebService 
{ 
    private SqlConnection con; 
    //this function will call the sql procedure 
    [WebMethod] 
    [ScriptMethod] 
    public string UserNameExist(string userName) 
    { 
     bool userNameInUse = false; 
     Connection(); 
     SqlCommand com = new SqlCommand("UserNameExists", con); 
     com.CommandType = CommandType.StoredProcedure; 
     com.Parameters.Add(new SqlParameter() 
     { 
      ParameterName = "@UserName", 
      Value = userName 
     }); 

     con.Open(); 
     userNameInUse = Convert.ToBoolean(com.ExecuteScalar()); 

     Registeration reg = new Registeration(); 
     reg.UserName = userName; 
     reg.UserNameInUse = userNameInUse; 

     //to serialize this to JSON 
     JavaScriptSerializer js = new JavaScriptSerializer(); 
     //Context.Response.Write(js.Serialize(reg));   
     con.Close(); 
     return js.Serialize(reg); 
    } 
    private void Connection() 
    { 
     string constr = ConfigurationManager.ConnectionStrings["NerdsContext"].ToString(); 
     con = new SqlConnection(constr); 
    } 
} 

で、ここで私のAJAXのスクリプトです...提供されています:

$(document).ready(function() { 
       $("#txtUserName").keyup(function() { 
        var userNameVal = document.getElementById("txtUserName").value; 
        if (userNameVal.length >= 3) 
        { 
         $.ajax({ 
          url: '../RegisterationService.asmx/UserNameExist', 
          contentType: "application/json; charset=utf-8", 
          method: 'POST', 
          data: JSON.stringify({'userName': userNameVal}), 
          //the data the server expecting 
          dataType: 'json', 

          success: function (data) { 
           var divElement = $("#divOutput"); 
           if (data.userNameInUse) 
           { 
            divElement.css('color', 'red'); 
            divElement.text(userNameVal + ' is already in use'); 

           } 
           else 
           { 
            divElement.css('color', 'green'); 
            divElement.text(userNameVal + ' is available'); 

           } 
           //alert(data.userName); 

          }, 
          error: function (xhr, ajaxOptions, thrownError) { 
           console.log(xhr.status); 
           console.log(xhr.responseText); 
           console.log(thrownError); 
          } 


         }); 
        } 
       }); 
}); 

どこが問題かわかりません。私はすでに登録オブジェクトに値を割り当てる[OK]を

答えて

1
con.Close(); 
var obj = new Registration 
{ 
    Username = userName, 
    UserNameInUse = userNameInUse 
}; 
var json = new JavaScriptSerializer().Serialize(obj); 
+0

、私は本当にこの答えはないと思う、と私はすでに – salRad

+0

あなたが上になっているものを教えてください '要素を点検し正常に動作しているサービスを確認しました - >ネットワーク - >レスポンス ' –

+0

何もそれがイライラすることはありません 問題と関係がありますが、これは私のサービスの出力です ' {" UserName ":" salRad "、" UserNameInUse ":true} ' – salRad

関連する問題