您好我已经在asp.net中创建了一个登录表单来重定向另一个页面我创建了一个用于用户验证和jquery的web服务但是ajax数据正在返回未定义页面不重定向请帮助我...我的代码是这样的< / p>
web服务
[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 :(得分:0)
我认为您在ajax调用中的URL不正确。您需要提供服务名称,例如Login.asmx,而不是页面(即登录.aspx)。
我也不确定你传递数据的方式,但它可能是正确的。
答案 1 :(得分:0)
这些是你犯的错误
Web api方法包含 un &amp; pwd 作为您的参数,这意味着您应该使用查询字符串来请求此次调用
<强> UN =名称&安培; PWD =通行证强>
接下来,您正在调用该服务并发送为数据,它将查找包含与您输入数据相同属性的对象。
一种解决方案 公共课登录 { 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
答案 2 :(得分:0)
删除contentType:“application / json; charset = utf-8”,
我已经得到了......
成功运行......