论坛首页 Web前端技术论坛

请教两个关于 XMLHTTP 的问题~~

浏览 6503 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-04-21  
1. 在XMLHTTP中,假如使用GET方法,那么传递的参数是不是只能自己拼在URI的后面,而不可以用send,发送过去?如下代码片断:

......
var qryParams="param1=a & param2=b";
xmlHttp.open("GET","/URI",true);;
xmlHttp.send(qryParams);;
......


这样的话,我在server端(一个servlet),就无法用getParameter的方法取得param1 和 param2 的值。只有将qryParams拼在URI后面才可以在server端取道参数。


......
var qryParams="param1=a &  param2=b";
xmlHttp.open("GET","/URI?"+qryParams,true);;
xmlHttp.send(null);;
......




而这样的话,假如我重复发送同一请求,只有第一次会送到server端,之后好像xmlhttp就会一直从cache里面直接取,怎样才可以强制让它每次都上server端请求一次呢?用POST方法似乎就没有这种问题。

2. 在WebFX上看到作者有一个例子是直接将一个XMLDocument对象通过send方法发送给server的,假如这样的话,在server端该如何取到这个XMLDocument呢?
   发表时间:2004-04-21  
第二个问题,如果是asp的话就很简单:
set xml_dom = Server.CreateObject(“MSXML2.DOMDocument“)
xml_dom.load(request)

第一个问题好象没有这回事(没有深究,只觉得get有长度问题)
0 请登录后投票
   发表时间:2004-04-22  
我想到应该怎么样取得客户端传过来的xml了
照asp的思路,应该是:
1.先建立一个document对象,
2.然后获得一个流,
3.然后解释这个流,
4.然后用document对象操作!

我想java应该是:
1.建立一个parse对象.
2.然后获得一个流(java中的应该是request.getInputStream()).
3.创建一个document对象(传流入parse对象获得document对象).
4.用document对象操作!
0 请登录后投票
   发表时间:2004-04-23  
我昨天也搞掂啦:)

第二个问题和xiaoyu说的差不多了~~ 我是用apache 的XERCES来处理XML的,对于request.getInputSource(),还需要转化成XMLInputSource,才能交给parser处理。其它都如xiaoyu所说啦:)

第一个关于使用GET方法强迫xmlhttp每次都去server获取最新数据的问题,在网上找到了一些论坛里面有人讨论过。似乎只有一个笨办法,在URI后面加多一个参数作为时间戳:

比如:
"/TestController?param1=a&param2=b"
改成
"/TestController?param1=a&param2=b&timeStr="+(new Date(););


不知道各位DX有没有什么好办法了?

至于使用GET方法中,servlet里面无法读取send()传送过来的内容,我试了几次,确实如此。而且看MSDN上的例子send XML都是用post的,是不是使用GET方法,就真的没法send 呢? 请DX赐教啦~~:)
0 请登录后投票
   发表时间:2004-04-23  
其实设置时间截是一个方法吧.
你有没有试过有网页上加上必须更新的标记呢??
代码:
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache";
response.setDateHeader("Expires", 0);
或者把浏览器设置每次访问都更新.

关于get方式是不能send,你可以看一下msdn里面是怎么讲的(我不清楚),不过一般都是用post来做,因为get还有一个字符长度问题(我以前一个同事就遇到这个问题).
0 请登录后投票
   发表时间:2004-04-23  
谢谢xiaoyu ^_^

我确实一直都没往设response header方面想
可能因为servlet传回给xmlhttp的是XML,就完全没想到可以设一个response header吧:) 谢谢xiaoyu的教导了,呵呵

顺便说一句,
或者把浏览器设置每次访问都更新.
这个极端了一点哦,嘻嘻~~

至于send的问题。MSDN也没有详细讲它对于GET 和 POST两种方法的不同,不过MSDN的例子里面确实没有用GET 而且send()中又带有数据的例子的。我也就暂且认为使用 GET 方法不能用send()来传数据吧~~ 不对之处,大家多多批评了,呵呵~~

anyway 谢谢 xiaoyu DX了:)
0 请登录后投票
   发表时间:2004-05-11  
这个case好像结束了,但是我想说两句.如果是很多数据要发送到server端,可不可以在页面中定义一个xml数据岛,里面定义好要发送到server端的参数,在发送的时候给参数赋值,然后把整个xml送到server端?希望大家指正
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics