Ajax - 使用XMLHttpRequest对象向服务器发送简单请求
来源:互联网 发布:生死狙击解封软件 编辑:程序博客网 时间:2024/05/01 04:03
使用XMLHttpRequest对象是如何向服务器发送请求,以及如何处理服务器的响应?
1. 为得到XMLHttpRequest对象实例的一个引用,可以创建一个新的实例,也可以访问包含有XMLHttpRequest实例的一个变量。
2. 告诉XMLHttpRequest对象,哪个函数会处理XMLHttpRequest对象状态的改变,为此要把对象的onreadystatechange属性设置为指向JavaScript函数的指针。
3. 指定请求的属性。XMLHttpRequest对象的open()方法会指定将发出的请求。open()方法取3个参数:一个是指示所用方法(通常是GET或POST)的串;一个是表示目标资源URL的串;一个是Boolean值,指示请求是否是异步的。
4. 将请求发送给服务器。XMLHttpRequest对象的send()方法把请求发送到指定的目标资源。send()方法接受一个参数,通常是一个串或一个DOM对象。这个参数作为请求体的一部分发送到目标URL。当向send()方法提供参数时,要确保open()中指定的方法是POST。如果没有数据作为请求体的一部分被发送,则使用null。
这些步骤很直观:你需要XMLHttpRequest对象的一个实例,要告诉它如果状态有变化该怎么做,还要告诉它向哪里发送请求以及如何发送请求,最后还需要指导XMLHttpRequest发送请求。
对于XMLHttpRequest对象,onreadystatechange 属性存储了回调函数的指针。当XMLHttpRequest对象的内部状态发生变化时,就会调用这个回调函数。当进行了异步调用,请求就会发出,脚本立即继续处理(在脚本继续工作之前,不必等待请求结束)。一旦发出了请求,对象的readyState属性会经过几个变化。尽管针对任何状态都可以做一些处理,不过你最感兴趣的状态可能是服务器响应结束时的状态。通过设置回调函数,就可以有效地告诉XMLHttpRequest对象:“只要响应到来,就调用这个函数来处理响应。”
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Simple XMLHttpRequest</title>
<script type="text/javascript">
var xmlHttp; //建立一个XMLHttpRequest对象实例的变量
/*
* 创建XMLHttpRequest对象实例
*/
function createXMLHttpRequest() {
if (window.ActiveXObject) {//如果是IE浏览器
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {//非IE浏览器
xmlHttp = new XMLHttpRequest();
}
}
/*
* 创建XMLHttpRequest实例,设置回调函数,发送请求
*/
function startRequest() {
createXMLHttpRequest(); //调用创建XMLHttpRequet对象函数
xmlHttp.onreadystatechange = handleStateChange;//设置回调函数
xmlHttp.open("GET", "simpleResponse.xml", true);//指定发送的请求
xmlHttp.send(null); //把目标发送到指定的目标资源,没有相关的参数发送就用null
}
/*
* 回调函数,只要响应到来,就调用这个函数来处理响应。
*/
function handleStateChange() {
///请求的状态,有5个值:0=未初始化,1=正在加载,2=已加载,3=交互中,4=完成
if(xmlHttp.readyState == 4) { //请求完成
if(xmlHttp.status == 200) {
alert("The server replied with: "+xmlHttp.responseText+
" this "+ xmlHttp.statusText);
}
}
}
</script>
</head>
<body>
<form action="#">
<input type="button" value="Start Basic Asynchronous Request"
onclick="startRequest();"/>
</form>
</body>
</html>
服务器的响应文件simpleResponse.xml只有一行文本。点击HTML页面上的按钮会生成一个警告框,其中显示simpleResponse.xml文件的内容。
如果讨论基于浏览器的技术时没有提到安全,那么讨论就是不完整的。XMLHttpRequest对象要受制于浏览器的安全“沙箱”。XMLHttpRequest对象请求的所有资源都必须与调用脚本在同一个域内。这个安全限制使得XMLHttpRequest对象不能请求脚本所在域之外的资源。
- Ajax - 使用XMLHttpRequest对象向服务器发送简单请求
- 使用XMLHttpRequest对象向服务器发送简单的请求
- 使用XMLHttpRequest对象向服务器发送简单请求
- 创建XMLHttpRequest对象并向服务器发送请求的方法
- AJAX - 向服务器发送请求
- AJAX - 向服务器发送请求
- AJAX - 向服务器发送请求
- Ajax向服务器发送请求
- AJAX - 向服务器发送请求
- AJAX--向服务器发送请求
- ajax-向服务器发送请求
- AJAX - 向服务器发送请求请求
- ajax向服务端发送请求的简单使用
- AJAX - 向服务器发送一个请求
- AJAX教程(2) - 向服务器发送请求
- ajax向服务器发送请求总结
- AJAX如何向服务器发送请求
- AJAX 多次发送异步请求的 XmlHttpRequest 对象的设置
- 好妻子的标准
- 哈哈,终于回来了
- java模式之策略模式(Strategy Pattern)
- 什么是cobol语言,主要用来干嘛用的!(最近在其它做银行或证券的项目组常听到的关键字,搜到了一些基本概念)
- Every programmer should learn C during their programming career.
- Ajax - 使用XMLHttpRequest对象向服务器发送简单请求
- 收集整理的eclipse常用的快捷键,原来一直都使用jbuilder,jb2007后,eclipse排名java IDE老大,随潮流吧.
- 深入了解struts中的struts-config.xml
- Every programmer should learn C during their programming career.
- 使用ATLTRACE时发生Link错误
- 如何调节系统声音音量
- [思语]_沉香屑
- linux下二级代理软件desproxy教程
- C/C++调用JVM -可执行Java文件方案