如何结合AJAX技术的问题:
如何结合AJAX技术的问题
JavaScript脚本如下:
vXmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
vXmlHTTP.open("POST","test.aspx",true);
vXmlHTTP.send("USERID=00001");
TEST.ASP的PageLoad()方法如下:
string UserId;
UserId = this.Page.Request.Form["USERID"].ToString();
出现的问题:
不能取得USERID;
问题点数:100、回复次数:15Top
1 楼hachenzhonghua(冬叶)回复于 2006-03-01 19:10:50 得分 0
自己补充一下:
一. xmlHttp.send()能否发送大量的数据?
二.xmlHttp.open中指定的接收处理页面如何接收到send过来的数据?Top
2 楼czhenq(...... fucking life. I want to change.)回复于 2006-03-01 21:35:02 得分 0
2。
vXmlHTTP.responseXMLTop
3 楼Optione(找个工作太难了)回复于 2006-03-02 03:23:12 得分 20
var sData="USERID=00001";
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open("POST","test.aspx",true);
xmlHttp.setRequestHeader("Content-Length",sData.length);
xmlHttp.setRequestHeader("CONTENT-TYPE","application/x-www-form-urlencoded");
xmlHttp.send(sData);
sData中对英文有效.
至于汉字麻可以构造XML文档,或者用VBS发送(有转换的函数网上),或者escape发送.Top
4 楼hachenzhonghua(冬叶)回复于 2006-03-06 14:30:55 得分 0
我的问题是:在Test.ASPX的后台代码中,如何取得Send过来的数据?Top
5 楼hachenzhonghua(冬叶)回复于 2006-03-06 14:32:50 得分 0
toczhenq:
vXmlHTTP.responseXML如何在后台代码中调用呢?ASP中好像可以用的,ASPX中如何使用?Top
6 楼czhenq(...... fucking life. I want to change.)回复于 2006-03-06 18:32:06 得分 10
如果是要在后置代码中进行处理,就根本没必要使用XmlHttp了,
参考System.Net下的WebClient类。Top
7 楼zhouabc(试着专业一点)回复于 2006-03-06 19:36:45 得分 40
PageLoad()
{
byte[] aryByte = new byte[Request.InputStream.Length];
Request.InputStream.Read(aryByte,0,Convert.ToInt32(Request.InputStream.Length));
//这时的aryByte="USERID=00001"
}
传少数据可以这样:
vXmlHTTP = new ActiveXObject("Microsoft.XMLHTTP");
vXmlHTTP.open("POST","test.aspx?USERID=00001",true);
vXmlHTTP.send();
TEST.ASP的PageLoad()方法如下:
string UserId;
UserId = this.Page.Request.QueryString["USERID"].ToString();
Top
8 楼hachenzhonghua(冬叶)回复于 2006-03-07 14:31:23 得分 0
to:czhenq(修身、齐家、治国、富天下)
1.因为调用页面要实现不刷新取得数据,例如在页面上的文本框中赋值,因此需要使用JavaScript调用vXmlHTTP.open();vXmlHTTP.send();, 向后台处理页面发出请求,在数据库提取数据!
2.后台处理页面得到请求后,经过处理,使用Response.write输出结果.
3.调用页面获取服务端的响应文本 var helloStr = http.responseText
问题是:
a.思路是否正确!
b.第二步如何取得调用页面发送的参数(除了查询字符串方式,这个我是知道的),就是vXmlHTTP.Send(vParam)方法的参数,另外vParam参数如果数据量很大是否可行?Top
9 楼hachenzhonghua(冬叶)回复于 2006-03-07 15:07:00 得分 0
自己顶Top
10 楼hachenzhonghua(冬叶)回复于 2006-03-08 15:04:07 得分 0
自己顶Top
11 楼zhouabc(试着专业一点)回复于 2006-03-10 20:44:59 得分 10
PageLoad()
{
byte[] aryByte = new byte[Request.InputStream.Length];
Request.InputStream.Read(aryByte,0,Convert.ToInt32(Request.InputStream.Length));
//这时的aryByte="USERID=00001"
}
上面的就是取得问题B中vParam, 数据量大没有试过,应该和http上传文件的大小差不多吧,即
默认的4M.Top
12 楼xrwang(无涯)回复于 2006-03-11 09:10:21 得分 10
C#中可以调用WebClient或者WebResponse(也许是WebRequest,记不清楚了)Top
13 楼mooddecode1980(心情解码)回复于 2006-03-11 11:09:32 得分 0
:)
--Top
14 楼SaRoot(新风机)回复于 2006-03-11 18:40:43 得分 10
byte[] aryByte = new byte[Request.InputStream.Length];
Request.InputStream.Read(aryByte,0,Convert.ToInt32(Request.InputStream.Length));
//这时的aryByte="USERID=00001"
Top
15 楼hachenzhonghua(冬叶)回复于 2006-03-17 14:58:15 得分 0
谢谢大家,按照回答先后给分Top




