2016-11-13 40 views
1

你好,我已经在asp.net重定向我已经创建了用户验证和jQuery,但阿贾克斯数据的Web服务的另一个页面创建的登录表单返回undefined网页没有进行重定向,请帮我...我的代码是这样的jQuery验证的登录表单asp.net C#与web服务

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); 
     } 

    }); 

}); 
}); 
+0

显然你的代码是c orrect。您是否调试过Webservice的输入和输出? –

+0

我用调试检查没有错误,但它不是重定向值只有空值 – Raviteja

+0

成功的“数据”为空吗?如果是....在浏览器中按f12以检查控制台中的任何错误。 –

回答

0

通过去除的contentType简单的解决: “应用/ JSON;字符集= UTF-8”,

我知道了...

成功运行...

0

我认为你的URL在ajax调用中是不正确的。您需要提供您的服务名称,例如Login.asmx,而不是页面(I.e. Login.aspx)。

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

0

这些都是你使

  1. 参数名称不匹配
  2. 传递作为数据POST方法的数据
  3. 格式是不匹配的havig报价错误。

的Web API方法包含 & PWD为您的参数,这意味着你应该要求该调用与查询字符串

?UN =名称& PWD =传递

接下来,您拨打的服务和发送的数据其中会看用于包含与您的输入数据相同属性的对象。

One Solution public class Login public string un {get;组; } public string 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); 
     } 

    }); 

}); 
}); 

另一个解决方案是通过将值转换成查询字符串通过使用

window.href 
+0

嗨aravind ...当我从jquery打印它的警报框时获取的值是undefined – Raviteja

+0

喜欢这个alert(data .D); – Raviteja