使用webservice的asp.net c#登录表单中的Jquery验证



你好,我已经在asp.net中创建了一个登录表单来重定向另一个页面,我已经为用户验证和jquery创建了一个webservice,但ajax数据返回未定义的页面不重定向,请帮助我…我的代码是这样的

Webservice

 [WebMethod]
    public static string LoginSer(string un,string pwd)
    {
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand("select Username,Password from emp_Login where IsActive=1 and Username='" + un + "' and Password='" + pwd + "'", con))
            {
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                if (dt.Rows.Count > 0)
                {
                    return "1";
                }
                else
                {
                    return "0";
                }
            }
        }
    }
Jquery

$(document).ready(function () {
$("#btnLogin").click(function () {
    var uid = $("#txtUN").attr('value');
    var pass = $("#txtPWD").attr('value');
    $.ajax({
        type: "POST",
        url: "Login.aspx/LoginSer",
        data: '{un: ' + uid + ', pwd: ' + pass + '}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            if (data.d == "1")
            {
                window.location.assign("../../Home.aspx");
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            //alert(XMLHttpRequest.responseText);
            var err = eval("(" + XMLHttpRequest.responseText + ")");
            alert(err.Message);
        }
    });
});
});

我认为你在ajax调用URL是不正确的。您需要提供您的服务名称,例如Login。

我也不确定你传递数据的方式,但它可能是正确的。

.

这些都是你犯的错误

  1. 参数名称不匹配
  2. 作为数据传递
  3. POST方法的data格式中引号不匹配

Web api方法包含un &pwd作为参数,这意味着您应该使用查询字符串请求此调用,如

?联合国= Name& pwd =通过

接下来,你调用服务并发送一个data,它将查找一个包含与输入数据相同属性的对象。

一个解公共类登录{公共字符串UN {get;设置;}公共字符串PWD {get;设置;}}

[WebMethod]
    public static string LoginSer(Login user)
    {
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand("select Username,Password from emp_Login where IsActive=1 and Username='" + user.un + "' and Password='" + user.pwd + "'", con))
            {
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                if (dt.Rows.Count > 0)
                {
                    return "1";
                }
                else
                {
                    return "0";
                }
            }
        }
    }
$(document).ready(function () {
$("#btnLogin").click(function () {
    var uid = $("#txtUN").attr('value');
    var pass = $("#txtPWD").attr('value');
    var userdata = {
            "un": uid,
            "pwd": pass
        };      
    $.ajax({
        type: "POST",
        url: "Login.aspx/LoginSer",
        data: userdata,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            if (data.d == "1")
            {
                window.location.assign("../../Home.aspx");
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            //alert(XMLHttpRequest.responseText);
            var err = eval("(" + XMLHttpRequest.responseText + ")");
            alert(err.Message);
        }
    });
});
});

另一个解决方案是通过使用

将值传递给querystring来简单修复。
window.href

通过删除contentType: "application/json;charset = utf - 8",

i have got it…

成功运行…

最新更新