首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

【200分】jquey ajax +asp.net 正常处理程序(ashx)

2013-03-14 
【200分】jquey ajax +asp.net 一般处理程序(ashx)head idHead1 runatservermeta http-equivCont

【200分】jquey ajax +asp.net 一般处理程序(ashx)

<head id="Head1" runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>登录</title>
    <link href="Content/login.css" rel="stylesheet" type="text/css" />
    <link type="text/css" href="jqueryui/css/smoothness/jquery-ui-1.8.20.custom.css" rel="stylesheet" />
    <script type="text/javascript" src="Script/jquery-1.7.1.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var $username = $("#txt_username");
            var $userpwd = $("#txt_userpwd");
            var $logincode = $("#logincode");
            var $info = $("#lbl_info");
            var $remeberpwd = $(":checkbox[name='remeberpwd']").attr("checked") == true ? "1" : "0";
            $("#btn_login").click(function () {
                if (checkinput() == true) {
                    $.ajax({
                        type: "post",
                        url: "ajax/MyLoginHandler.ashx",
                        data: "{'username':'" + $username.val() + "','userpwd':'" + $userpwd.val() + "','remeberpwd':'" + $remeberpwd + "','logincode':'" + $logincode.val() + "'}",
                        success: function (msg) {
                            alert(1);
                        },
                        error: function () {
                            alert(2);
                          // showvalidatecode();
                        }
                    });


                }
                return false;
            });

            $("#getcode_img").click(function () {
                showvalidatecode();
            });
            function showvalidatecode() {
                $("#getcode_img").attr("src", "Control/validate.aspx");
            };

            function checkinput() {
                if ($username.val().length == 0) {
                    $info.text("用户名为空");
                    return false;
                }
                if ($userpwd.val().length == 0) {
                    $info.text("密码为空");
                    return false;
                }
                //加上js正则
                return true;
            };
        });
    </script>
</head>



 public class MyLoginHandler : IHttpHandler,IRequiresSessionState
    {
        public void ProcessRequest(HttpContext context)
        {
            string username = context.Request.Form["username"];
            string userpwd = context.Request.Form["userpwd"];
            string remeberpwd =context.Request.Form["remeberpwd"];
            string logincode = context.Request.Form["logincode"];
            if (logincode == context.Session["logincodenum"].ToString())
            {
                if (new LoginHandler().ValidateUser(username, userpwd))
                {
                    if (remeberpwd == "1")


                    {

                    }
                    context.Response.Write("3" + "|登陆成功,进行跳转");
                }
                else
                {
                    context.Response.Write("2" + "|用户名或密码错误");
                }
            }
            else
            {
                context.Response.Write("1" + "|验证码错误");
            }

        }


实在找不出为什么错了 200分吧! 求助
[解决办法]
先用浏览器插件跟踪一下xhr的请求。
[解决办法]
首先保证 url: "ajax/MyLoginHandler.ashx",路径正确
[解决办法]
data: "{'username':'" + $username.val() + "','userpwd':'" + $userpwd.val() + "','remeberpwd':'" + $remeberpwd + "','logincode':'" + $logincode.val() + "'}",

这么做是不行滴,请参考:
 data: "co="+$.trim(str.val())+"&wd="+$.trim(pwd.val())+"&kp="+keepPW+"&type=usual&way="+$("#hidtype").val()+"&acDate="+(new Date().getTime()),

[解决办法]
 data: "{username:$username.val(),userpwd:'" + $userpwd.val() + "','remeberpwd':'" + $remeberpwd + "','logincode':'" + $logincode.val() + "'}",
红色部分都不要单引号

[解决办法]
按照你那样来得指定为json格式才行
[解决办法]
其实这样写更清晰,我只写了一个
data: "{username:$.trim($("#txt_username").val())}",
[解决办法]
其实是要把data后面所有的双引号去掉。
[解决办法]
data: {"username":$username.val(),"userpwd":$userpwd.val(),"remeberpwd":$remeberpwd.val(),"logincode":$logincode.val()}

[解决办法]
 jQuery.post(url, { "sm": sm }, function (data){});

这个是简单的用法
[解决办法]
试着在 jquery ajax的error 那里这样写:
  error: function (a, s, d) {
                                alert(s + " " + d);


                            }

看看弹出来的是什么错误
[解决办法]
$.post(url, $(#form1).serialize(), callback, datatype);

用post试试 不用拼写表单元素 直接提交表单...

看你这问题猜是 ajax data数据的问题
[解决办法]
data格式错了。
data:{"username":$username.val(),"userpwd":$userpwd.val(),"remeberpwd":$remeberpwd.val(),"logincode":$logincode.val()}
[解决办法]

引用:
还是自己的json、get 和post概念理解不深 去双引号好像没有用


既然断点都进去了,那么ashx的路径应该是没问题的
估计就像LS说的  是参数格式的问题
data:{"key1":value1,"key2":value2} 这样的方式写
就是19L的写法

LZ可以去用Firbug调试一下,看看在请求过去的URL上面有没有带着 参数,还有看下参数的格式是否正确
[解决办法]
跟踪看下数据发送的情况
[解决办法]
string username=context.Request["username"]==null?"":context.Request["username"].ToString();
试一试这个。
还有你的html代码没贴出来
[解决办法]
把datatype 和contentType加上试试
[解决办法]
我在webservice里面是必须要加datatype和contentType的
[解决办法]
 url: "GetZyName.aspx",
                    type: "GET",
                    data: { zyid: zyid , zyname:zyname},
                    datatype: "json",
                    success: function(data, status) {
                        
                    }
data的格式写成上面的格式,设置断点或alert看前台要传递的数据有没有取到!
ashx中没有取得数据应该是前台提交的时候没有提交成功数据!!

ashx中取数据写成:context.Request.QueryString["zyid"]试试!
[解决办法]
上面已经说得很明显了,

 data: "{'username':'" + $username.val() + "','userpwd':'" + $userpwd.val() + "'

把多余引号去掉

data: {'username' : $username.val(),'userpwd': $userpwd.val()}
[解决办法]
ajax/MyLoginHandler.ashx。    
 Hander页面返回值了没有???
[解决办法]
遇到楼主同样的问题
首先把大括号外面的引号要去掉
换成直接用jquery的post方法就能正常提交取到
用ajax就不行

热点排行