jq中的ajax向ashx传递值,该怎么接收啊?
RT,$.ajax({login.ashx该如何接收传递的参数呢?HttpContext.Request.QueryString这一招是失败了,什么也获取不到。求获取参数的方法 ajax C# --------------------编程问答-------------------- string username=context.Request.Form["username"];
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);
}
});
... --------------------编程问答-------------------- 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}, --------------------编程问答--------------------
+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[""]来获取参数. --------------------编程问答--------------------
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都不弹出了 --------------------编程问答-------------------- 靠!使用火狐,浏览器终于给我报出了错误,未将对象的实例引用到对象。。。。 --------------------编程问答--------------------
未获取相应的控件值。查看一下是不是语法错误什么 的。 --------------------编程问答-------------------- 刚刚chrome说我没有引用到$("#<%=username.ClientID%>").val()这个的值。莫非jq没有办法获取asp.net控件的值??? --------------------编程问答-------------------- 终于,原来是$("#<%=username.ClientID%>").val()这个我忘记加#号和双引号了。但是加上了以后能获取了,但是后台仍然获取不到值。设置断点一看context.Request.From为空,context.Request.Params里面没有一个叫username的,求指点啊!到底怎么取值啊? --------------------编程问答--------------------
ajax传出值了没有?
你看看是不是路径的问题?断点ashx看看 --------------------编程问答-------------------- ajax传递值没有问题,断点可以断到ashx --------------------编程问答-------------------- 用调试工具看,提交的数据是否正确。火狐,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};
去掉双引号 --------------------编程问答-------------------- 这是修改之后的结果,你看看我监控的变量。 --------------------编程问答-------------------- data: "{username:'" + username + "',password:'" + password + "',code:'" + code + "'}"
这样试一下 --------------------编程问答-------------------- HttpWatch用这个工具检测http请求吧。问题就出在data上面,json格式写的不对。
IE插件,HTTP请求监测 --------------------编程问答-------------------- 这东西怎么用啊?
补充:.NET技术 , C#