当前位置:编程学习 > C#/ASP.NET >>

jq中的ajax向ashx传递值,该怎么接收啊?

RT,
$.ajax({
                        type: "post",
                        url: "../Ashx/login.ashx",
                        data: "{username:" + $(<%=username.ClientID%>).val() + ",password:" + $(<%=password.ClientID%>).val() + ",code:" + $(<%=code.ClientID%>).val() + "}",
                        datatype: "text",
                        contentType: "application/json; charset=utf-8",
                        success: function (data) {
                            alert(data);
                        }
                    });
login.ashx该如何接收传递的参数呢?HttpContext.Request.QueryString这一招是失败了,什么也获取不到。求获取参数的方法 ajax C# --------------------编程问答-------------------- string username=context.Request.Form["username"];
... --------------------编程问答-------------------- type POST的话 要用HttpContext.Request.Param[""]  
 GET对应HttpContext.Request.QueryString
--------------------编程问答-------------------- QueryString 是取get方式,Form是取post方式
直接Request是 从 QueryString中找,找不到就找Form,还找不到就找cookie,好像还会找一样,忘了 --------------------编程问答-------------------- 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}, --------------------编程问答--------------------
引用 4 楼 moonwrite 的回复:
url: "../Ashx/login.ashx",好丑 最好从根目录开始;不要..的

datatype: "text",(省略去)

  data: "{username:" + $(<%=username.ClientID%>).val() + ",password:" + $(<%=password.ClientID%>).val() + ",code:"……


+1
--------------------编程问答-------------------- HttpContext.Request[“username”]
这是post。QueryString不行的 --------------------编程问答--------------------

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的参数是否正确 --------------------编程问答-------------------- 你采用的是POST方式的 那么久采用Form[""]来获取参数. --------------------编程问答--------------------
引用 1 楼 starfd 的回复:
string username=context.Request.Form["username"];
...


引用 2 楼 moonwrite 的回复:
type POST的话 要用HttpContext.Request.Param[""]  
 GET对应HttpContext.Request.QueryString


引用 6 楼 lye2000000_super 的回复:
HttpContext.Request[“username”]
这是post。QueryString不行的

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都不弹出了 --------------------编程问答-------------------- 靠!使用火狐,浏览器终于给我报出了错误,未将对象的实例引用到对象。。。。 --------------------编程问答--------------------
引用 10 楼 showyusy 的回复:
靠!使用火狐,浏览器终于给我报出了错误,未将对象的实例引用到对象。。。。

未获取相应的控件值。查看一下是不是语法错误什么 的。 --------------------编程问答--------------------
引用 11 楼 nice_fish 的回复:
引用 10 楼 showyusy 的回复:靠!使用火狐,浏览器终于给我报出了错误,未将对象的实例引用到对象。。。。
未获取相应的控件值。查看一下是不是语法错误什么 的。
刚刚chrome说我没有引用到$("#<%=username.ClientID%>").val()这个的值。莫非jq没有办法获取asp.net控件的值??? --------------------编程问答-------------------- 终于,原来是$("#<%=username.ClientID%>").val()这个我忘记加#号和双引号了。但是加上了以后能获取了,但是后台仍然获取不到值。设置断点一看context.Request.From为空,context.Request.Params里面没有一个叫username的,求指点啊!到底怎么取值啊? --------------------编程问答--------------------
引用 13 楼 showyusy 的回复:
终于,原来是$("#<%=username.ClientID%>").val()这个我忘记加#号和双引号了。但是加上了以后能获取了,但是后台仍然获取不到值。设置断点一看context.Request.From为空,context.Request.Params里面没有一个叫username的,求指点啊!到底怎么取值啊?

ajax传出值了没有?
你看看是不是路径的问题?断点ashx看看 --------------------编程问答--------------------
引用 14 楼 nice_fish 的回复:
引用 13 楼 showyusy 的回复:终于,原来是$("#<%=username.ClientID%>").val()这个我忘记加#号和双引号了。但是加上了以后能获取了,但是后台仍然获取不到值。设置断点一看context.Request.From为空,context.Request.Params里面没有一个叫username的,求指点啊!到底怎么取值啊?
ajax传……
ajax传递值没有问题,断点可以断到ashx --------------------编程问答-------------------- 用调试工具看,提交的数据是否正确。火狐,IE9,CHROM开发人员工具都有。 --------------------编程问答--------------------
引用 16 楼 aley 的回复:
用调试工具看,提交的数据是否正确。火狐,IE9,CHROM开发人员工具都有。
改了一下写法
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都有值。其他的我就不知道怎么看了 --------------------编程问答-------------------- data: "{username:" + username + ",password:" + password + ",code:" + code + "}"
写成:data:{username:username,password:password,code:code};
去掉双引号 --------------------编程问答--------------------
引用 18 楼 nice_fish 的回复:
data: "{username:" + username + ",password:" + password + ",code:" + code + "}"
写成:data:{username:username,password:password,code:code};
去掉双引号
这是修改之后的结果,你看看我监控的变量。 --------------------编程问答-------------------- data: "{username:'" + username + "',password:'" + password + "',code:'" + code + "'}"
这样试一下 --------------------编程问答-------------------- HttpWatch用这个工具检测http请求吧。问题就出在data上面,json格式写的不对。
IE插件,HTTP请求监测 --------------------编程问答--------------------
引用 21 楼 aley 的回复:
HttpWatch用这个工具检测http请求吧。问题就出在data上面,json格式写的不对。
IE插件,HTTP请求监测
这东西怎么用啊?
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,