解决方案 »

  1.   

    string username=context.Request.Form["username"];
    ...
      

  2.   

    type POST的话 要用HttpContext.Request.Param[""]  
     GET对应HttpContext.Request.QueryString
      

  3.   

    QueryString 是取get方式,Form是取post方式
    直接Request是 从 QueryString中找,找不到就找Form,还找不到就找cookie,好像还会找一样,忘了
      

  4.   

    url: "../Ashx/login.ashx",好丑 最好从根目录开始;不要..的datatype: "text",(省略去)  data: "{username:" + $(<%=username.ClientID%>).val() + ",password:" + $(<%=password.ClientID%>).val() + ",code:" + $(<%=code.ClientID%>).val() + "}",超丑 
    下面好调试和维护多了
    var username=$(<%=username.ClientID%>).val();
    ....
    data:{Username:username,Password:password},
      

  5.   

    HttpContext.Request[“username”]
    这是post。QueryString不行的
      

  6.   


    var uname = $("#<%=username.ClientID%>").val();
    var upwd = $("#<%=password.ClientID%>").val();
    $.ajax({
                            type: "post",
                            url: "../Ashx/login.ashx",
                            data: {name:uname,pwd:upwd}
                            datatype: "text",
                            contentType: "application/json; charset=utf-8",
                            success: function (data) {
                                alert(data);
                            }
                        });
    分开参数,自己也可以很清晰看到是哪一步出错,另外你是post过去的,所以在后台应该用
    context.Request.Form["pwd"]的方式来获取
    可以用chrome或者Firebug调试看看ajax的参数是否正确
      

  7.   

    你采用的是POST方式的 那么久采用Form[""]来获取参数.
      

  8.   

    public void ProcessRequest(HttpContext context)
        {
            try
            {
                string ss = string.Format("你输入的是{0}", context.Request.Params["username"].ToString());
                context.Response.Write(ss);
            }
            catch (Exception e)
            {
                context.Response.Write(e.Message);
            }
            context.Response.End();
        }是不是我其他哪里写错了啊?你们的方法我全都是过了
    context.Request.Params["username"]
    context.Request.From["username"]
    context.Request["username"]
    通通获取不了结果,网页干脆就是没反应。连alert都不弹出了
      

  9.   

    刚刚chrome说我没有引用到$("#<%=username.ClientID%>").val()这个的值。莫非jq没有办法获取asp.net控件的值???
      

  10.   

    终于,原来是$("#<%=username.ClientID%>").val()这个我忘记加#号和双引号了。但是加上了以后能获取了,但是后台仍然获取不到值。设置断点一看context.Request.From为空,context.Request.Params里面没有一个叫username的,求指点啊!到底怎么取值啊?
      

  11.   

    ajax传出值了没有?
    你看看是不是路径的问题?断点ashx看看
      

  12.   

    ajax传递值没有问题,断点可以断到ashx
      

  13.   

    用调试工具看,提交的数据是否正确。火狐,IE9,CHROM开发人员工具都有。
      

  14.   

    改了一下写法
    var username = $("#<%=Tusername.ClientID%>").val();
                        var password = $("#<%=Tpassword.ClientID%>").val();
                        var code = $("#<%=Tcode.ClientID%>").val();
                        $.ajax({
                            type: "post",
                            url: "../Ashx/login.ashx",
                            data: "{username:" + username + ",password:" + password + ",code:" + code + "}",
                            contentType: "application/json; charset=utf-8",
                            success: function (data) {
                                alert(data);
                            }
                        });
    我把火狐的断点设置到了data: "{username:" + username + ",password:" + password + ",code:" + code + "}"。直到这里username,password,code都有值。其他的我就不知道怎么看了
      

  15.   

    data: "{username:" + username + ",password:" + password + ",code:" + code + "}"
    写成:data:{username:username,password:password,code:code};
    去掉双引号
      

  16.   

    data: "{username:'" + username + "',password:'" + password + "',code:'" + code + "'}"
    这样试一下
      

  17.   

    HttpWatch用这个工具检测http请求吧。问题就出在data上面,json格式写的不对。
    IE插件,HTTP请求监测
      

  18.   

    好吧,我已经使用了asp.net自带的ajax搞定了
      

  19.   

    终于,直到今天我才知道这个问题的解决方案
    前台,原来我一直没错,是因为后台。
    后台用context.Server.UrlDecode(context.Request.Form.ToString());这种方式才能获取前台传过来的json数据