第一种方法:ajax前后端交互,前端使用这种传参方式:JSON.stringify({obj:JSON.stringify(json_obj)}),而后端使用这种接参方式:public static string mymethod(string obj),注意前后端参数的名称必须相同。
function login() {
var username_str = $("#username").textbox("getValue");
var pwd_str = $("#password").textbox("getValue");
if (username_str != "" pwd_str != "") {
var json_obj = {
username: username_str,
password: pwd_str,
};
$.ajax({
type: "POST",
url: "login.aspx/mymethod",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify({obj:JSON.stringify(json_obj)}),//传递 JSON 对象,注意参数名需要与 WebMethod 中的一致
success: function (result) {
var json_result_data = JSON.parse(result.d);
},
error: function (error) {
console.log(error);
}
});
}
}
/// summary
/// 登录方法
/// /summary
/// param name="loginJsonObj"含有用户名和密码的json对象字符串/param
/// returns/returns
[WebMethod]
public static string mymethod(string obj)
{
JObject data = new JObject(
new JProperty("jg", false)
);
// 解码 Base64 并将 JSON 字符串转换为对象
LoginInfo jsonObj = JsonConvert.DeserializeObjectLoginInfo(obj);
string username_str = jsonObj.username.Trim();
string password_str = jsonObj.password.Trim();
string sqlstr = "select * from userinfo where username=@UserName";
// 创建参数集合
SqlParameter[] parameters = {
new SqlParameter("@UserName", username_str),
};
DataTable userInfo_dt = SqlHelper.ExecuteDataTable(sqlstr, parameters);
if (userInfo_dt != null userInfo_dt.Rows.Count 0)
{
if (password_str.Equals(userInfo_dt.Rows[0]["password"].ToString().Trim()))
{
data["jg"] = true;
}
}
return data.ToString();
}
第二种方法:ajax前后端交互,前端使用这种传参方式:data: JSON.stringify(json_obj),而后端使用用这种接参方式:public static string login_method(string username,string password),参数名必须与json对象中的名称相同。
function login_2() {
var username_str = $("#username").textbox("getValue");
var pwd_str = $("#password").textbox("getValue");
if (username_str != "" pwd_str != "") {
var json_obj = {
username: username_str,
password: pwd_str,
};
$.ajax({
type: "POST",
url: "login.aspx/login_method",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(json_obj),//传递 JSON 对象,注意参数名需要与 WebMethod 中的一致
success: function (result) {
var json_result_data = JSON.parse(result.d);
},
error: function (error) {
console.log(error);
}
});
}
}
/// summary
/// 登录方法
/// /summary
/// param name="loginJsonObj"含有用户名和密码的json对象字符串/param
/// returns/returns
[WebMethod]
public static string login_method(string username,string password)
{
JObject data = new JObject(
new JProperty("jg", false)
);
string sqlstr = "select * from usertb where username=@UserName";
// 创建参数集合
SqlParameter[] parameters = {
new SqlParameter("@UserName", username),
};
DataTable userInfo_dt = SqlHelper.ExecuteDataTable(sqlstr, parameters);
if (userInfo_dt != null userInfo_dt.Rows.Count 0)
{
if (password.Equals(userInfo_dt.Rows[0]["password"].ToString().Trim()))
{
data["jg"] = true;
}
}
return data.ToString();
}
到此这篇关于webform使用ajax访问后端接口的两种方法的文章就介绍到这了,更多相关webform使用ajax访问后端接口内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
您可能感兴趣的文章:- 编写轻量ajax组件01-与webform平台上的各种实现方式比较
- Ajax Throws Sys.WebForms.PageRequestManagerErrorException with Response.Redirect的解决方法
- 让AJAX不依赖后端接口实现方案