2008年10月15日
9:36:12
创建新的XMLHttpRequest对象:
<script language="javascript" type="text/javascript">
var request = new XMLHttpRequest();
</script>
javaScript 不要求指定变量类型
创建 XMLHttpRequest 的 Java 伪代码:
XMLHttpRequest request = new XMLHttpRequest();
JavaScript 中用 var
创建一个变量,给它一个名字(如 “request”),然后赋给它一个新的 XMLHttpRequest
实例。此后就可以在函数中使用该对象了。
发送请求:
1.设置服务器URL:var url = "/myservlet/ajax/2.jsp";
如果需要增加另一个参数,只需要将其附加到 URL 中并用 “与”(&
)字符分开 [第一个参数用问号(?
)和脚本名分开]。?"phone=" + escape(phone)
2.打开请求: request.open("GET",url,true);
五个参数:request-type;url;asynch;username;password;
3.发送请求: request.send(null);
一个参数:要发送的内容。前面url本身已经发送过数据了,不需要再用send发送了,如果要是发送安全信息或xml则需要指定
4.指定回调方法: request.onreadystatechange = updatePage;
注意:onreadystatechange允许指定一个回调函数。在代码中设置的位置要在send之前,这样服务器在回答完成请求之后才能查看该属性。
处理响应:
function updatePage(){
alert("Serve is done");
}
就绪状态:
request.readyState 当等于4的时候调用回调函数。
另外:其他的几种状态是:
- 0:请求未初始化(还没有调用
open()
)。
- 1:请求已经建立,但是还没有发送(还没有调用
send()
)。
- 2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
- 3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
- 4:响应已完成;您可以获取并使用服务器的响应了。
获取0就绪状态:
<input type="button" onclick="getData()" value="click"/>
<script type="text/javascript">
function getData(){
var request = new XMLHttpRequest();
alert("Ready state is:"+request.readyState);
}
</script>
查看处理请求的就绪状态:
<input type="button" onclick="getData()" value="click"/>
<script type="text/javascript">
var request;
function getData(){
request = new XMLHttpRequest();
alert("Ready state is:"+request.readyState);
var url = "/myservlet/ajax/2.jsp";
request.open("GET",url,true);
request.onreadystatechange=updatePage;
request.send(null);
}
function updatePage(){
alert("updatePage() called with ready sate of"+request.readyState);
}
</script>
响应数据:
var new = request.responseText;
responseText属性