2016-11-13 141 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