今天在做ajax请求后台代码时,发现ajax的方法都对,但就是请求不了后台代码,后来在同事帮助下才发现前台定义了两个相同参数导致请求出错。
下面记录一下request三种获取数据的方式:
1. Request.QueryString: 该方法主要是获取页面路径URL的参数;
2. Request.Form:该方法主要是以post请求方式获取报文体的参数;
3. Request.param:包含上面两种方式,它会在QueryString,Form,ServerVariable中都搜索一遍;
而我今天遇到的问题就是,我是用Request.param获取数据,在url中定义了一个type参数,同时也在ajax的datatype中定义了一个type参数,用Request.param就会同时将这两个type参数获取到,得到的type值是type1,type2参数(type=1,2),从而导致后台判断type时出错,而执行不了后台代码。
我的前台代码:
$.ajax{(
async:false,
url:"../..Handler/Handler1.ashx?type=1",
type:"post",
dataType:"id="+id+"&type="+nodeType,
success:funciton(re){
}
)};
后台代码:
string type = Request.param["type"].toString();
就是因为用了Request.param的方式获取数据,才获取到了type=type1,type2
应该可以分别用Request.QueryStirng获取页面路径Url的type参数,用Request.Form获取datatype获取type参数,这样就可以获取到想要的type值。