第一种方法: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);                    }                });            }        }
 ///         /// 登录方法        ///         /// 含有用户名和密码的json对象字符串        ///         [WebMethod]        public static string mymethod(string obj)        {            JObject data = new JObject(                           new JProperty("jg", false)            );            // 解码 Base64 并将 JSON 字符串转换为对象            LoginInfo jsonObj = JsonConvert.DeserializeObject(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);            }        });    }}
   ///     /// 登录方法    ///     /// 含有用户名和密码的json对象字符串    ///     [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访问后端接口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!