利用Ajax实现简单的异步通信
程序员文章站
2022-03-06 13:49:15
...
Ajax即异步的JavaScript和XML,是一种无需重新加载整个页面的情况下,能够部分更新网页的技术,创建快速动态网页。使用的大致框架如下:
function testAjax(){
var xmlhttp,xmlDOC;
//为了适应所有浏览器,进行判断新建对象
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}
else{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
// 判断状态
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState== 4 && xmlhttp.status == 200){
xmlDOC = xmlhttp.responseXML; //返回XML格式文件
//x = xmlDOC.getElementsByTagName("xml标签名"); //返回xml时使用
}
}
xmlhttp.open("GET","文件路径","true");
xmlhttp.send(); //发送http请求
}
先定义两个变量,第一个xmlhttp变量存储新建的XMLHttpRequest 对象,xmlDOC存储通信成功返回的值。onreadystatechange事件,在状态改变时触发。其中readyState的值的定义有:
值 | 定义 |
---|---|
0 | 请求未初始化 |
1 | 服务器连接已确定 |
2 | 请求已接收 |
3 | 请求处理中 |
4 | 请求已完成,且响应已就绪 |
status为http状态码,常见的状态码有:
状态码 | 定义 |
---|---|
200 | 请求成功 |
301 | 资源(网页等)被永久转移到其它URL |
200 | 请求的资源(网页等)不存在 |
200 | 内部服务器错误 |
所以判断在readyState为4并且status为200时 进行操作。返回值由两种类型,XML和字符串类型,即responseXML和responseText;如果返回XML就可以利用XML DOM
获取标签内容进行操作。返回字符串就用字符串解析获得里面的数据。
Ajax最核心的部分就是XMLHttpRequest对象,用于和服务器交换数据。
对于该对象的两个方法,如下:
1)open(method,url,async);
2) send(string);
open方法中,参数method为方法,为GET或者POST,GET和POST的用法及注意如下:
GET:
- url参数是可见的,不要用get传递保密数据
- 往数据库添加或删除数据不适合用get
POST:
- 需要上传文件
- 数据非常长
- 包含需要保密的数据
- 向数据库添加或删除数据
- 发送包含未知字符的用户输入时,post比get更稳定更可靠
url表示要打开文件所在路径,相对路径和绝对路径都可以,云服务器地址也可以。最后一个参数设置是否采用异步方式,
send方法中,如果是GET方法,参数不写。string参数仅用于POST请求,存放将要向服务器发送数据。
上一篇: 原生Ajax实现异步通信