ajax : Asynchronous JavaScript and XML 异步JavaScript和XML,用javascript异步形式去操作xml,用于数据交互。
一、具体过程:
1.创建一个ajax对象
ie6以下new ActiveXObject('Microsoft.XMLHTTP')
var xhr = null;
/*if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}*/
try {
xhr = new XMLHttpRequest();
} catch (e) {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
2.
open方法
参数
(1).打开方式
(2).地址
(3).是否异步
异步:非阻塞 前面的代码不会影响后面代码的执行
同步:阻塞 前面的代码会影响后面代码的执行
xhr.open('get','1.txt',true);
3.提交发送请求
xhr.send();
4.等待服务器返回内容
/*
readyState : ajax工作状态
responseText : ajax请求返回的内容就被存放到这个属性下面
on readystate change : 当readyState改变的时候触发
status : 服务器状态,http状态码
*/
xhr.onreadystatechange = function() {
if ( xhr.readyState == 4 ) {
if ( xhr.status == 200 ) {
alert( xhr.responseText );
} else {
alert('出错了,Err:' + xhr.status);
}
}
}
二、get和post的区别
1.get的缓存问题
解决办法: 在url?后面连接一个随机数,时间戳 "username=deep&"+ new Date().getTime()
2、编码问题 编码encodeURI
'2.get.php?username='+encodeURI('小章')+'&age=30&' + new Date().getTime()
3、post要设置请求头
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
xhr.send(data);
四、返回数据的处理
js中有个JSON对象(IE7及以下不支持,可以下载js的插件包),JSON对象有stringify和parse两个方法。
stringify:把一个对象转换成字符串。
parse:吧字符串转换成对应的对象。
浙公网安备 33010602011771号