2017-01-20 5 views
0

У меня есть веб-служба, которая проверяет, существует ли имя пользователя в базе данных или нет, служба работает нормально Я проверил, проблема в том, когда я пытаюсь вызвать ее с помощью функции 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); 
          } 


         }); 
        } 
       }); 
}); 

Я не знаю, где проблема.

ответ

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

Ok я уже присвоены значения объекта регистрации, я действительно не думаю, что это ответ, и я уже проверил службу он работает нормально – salRad

+0

Скажите мне, что вы получаете на 'Осмотреть Element -> Network -> Response' –

+0

Ничто из того, что делает это разочаровывающим Я не знаю, имеет ли это какое-либо отношение к проблеме, но это результат моей службы. ' {"UserName": "salRad", "UserNameInUse ": true} '' – salRad

Смежные вопросы