使用ASP.NET对WebMethod进行AJAX调用时,未知的Web方法

时间:2018-11-16 03:34:39

标签: asp.net asp.net-ajax

我对使用AJAX调用WebMethod有点陌生。我觉得我的Web方法逻辑很不错,但也许有人可以在这里提供帮助。将AJAX响应记录到控制台时,确实收到未知的Web方法错误。下面是我的Web方法和AJAX调用代码。

$("#btnLogin").click(function () {
    email = $("#txtEmailAddress").val();
    password = $("#txtPassword").val();

    //Create the login info object
    var loginInfo = {};
    //Set the object properties and value
    loginInfo.Email = email;
    loginInfo.Password = password;
    //Make the ajax call
    $.ajax({
         type: "POST",
         dataType: 'json',
         url: '<%=ResolveUrl("identicate.aspx/ValidateUsersToken") %>',
         data: '{loginInfo:' +  JSON.stringify(loginInfo) + '}',
         contentType: "application/json; charset=utf-8",
         success: function (data) {
             if (data.d == null || data.d == undefined)
             {
                 alert("Username or password not correct = " + data.d);
                 console.log(data);
                 console.log(loginInfo);
                 console.log(this.url);
             }
         },
         error: function (data) {
              console.log(data);
              console.log(loginInfo);
              console.log(this.url);
              alert(data.d);
         }
     });
});

这是我的网络方法

[WebMethod]
public static String ValidateUsersToken(iloginmodel loginInfo)
{
        //Variable to hold the user email address
        String email = string.Empty;
        //Get the connection string from config file
        String connectionString = iDbConfiguration.GetConnectionString();
        //Create the command text
        String commandText = "select Email, Password from VUser where Email = @Email & Password = @Password";
        //Create database connection object and open it
        using(SqlConnection loginConnection = new SqlConnection(connectionString))
        {
            //Set command paramters
            SqlCommand loginCommand = new SqlCommand(commandText, loginConnection);
            //Set command type to text
            loginCommand.CommandType = System.Data.CommandType.Text;
            //Add parameter to command
            loginCommand.Parameters.AddWithValue("Email", loginInfo.Email);
            loginCommand.Parameters.AddWithValue("@Password", loginInfo.Password);

            //Open the database connection
            try
            {
                loginConnection.Open();

                SqlDataReader loginReader = loginCommand.ExecuteReader();
                if(loginReader.HasRows)
                {

                    HttpContext.Current.Response.Write(loginReader.ToString());

                    while (loginReader.Read())
                    {
                        if (loginReader.HasRows)
                        {
                            email = loginReader["Email"].ToString();
                        }
                    }
                }
            }
            catch(SqlException sqlEx)
            {
                HttpContext.Current.Response.Write(sqlEx.Message);
            }
            finally
            {
                loginConnection.Close();
            }

        }
    return email;
}

0 个答案:

没有答案