webform使用ajax访问后端接口的两种方法

第一种方法:ajax前后端交互,前端使用这种传参方式:JSON.stringify({obj:JSON.stringify(json_obj)}),而后端使用这种接参方式:public static string mymethod(string obj),注意前后端参数的名称必须相同。

csharp 复制代码
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);
                    }
                });
            }
        }
csharp 复制代码
 /// <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.DeserializeObject<LoginInfo>(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对象中的名称相同。

csharp 复制代码
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);
            }
        });
    }
}
csharp 复制代码
  

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

秋风写于淄博,业务咨询与技术交流:Q375172665

相关推荐
AI大模型-小华39 分钟前
Codex 三方充值快速入门指南
java·前端·数据库·chatgpt·ai编程·codex·chatgpt pro
做前端的娜娜子3 小时前
同一链接实现 PC Web 与移动 H5 自适应
前端·掘金·金石计划
小帅不太帅3 小时前
架构没变、规模没变,DeepSeek V4 Flash 正式版凭什么暴涨 47 分?
前端·aigc·deepseek
jarvisuni3 小时前
DeepSeekFlash前端依旧拉垮,而且变慢了很多!
前端·javascript·算法
卷福同学5 小时前
AI编程出海第二步:验证关键词能否做站
前端·人工智能·后端
赵庆明老师5 小时前
Vben精讲:21-详解web-antd:tsconfig.json
前端·json·vim
wc885 小时前
微软EDGE浏览器功能学习
前端·学习·edge
破z晓5 小时前
javascript 导出excel表
开发语言·javascript·excel
Csvn6 小时前
🎯 原生 `<dialog>` 元素:终于可以扔掉一半的自定义弹窗组件了?
前端