见解就这些,不足的地方大姥指点
<script>
/**
* ajax:主要用途就是获取后台数据,与后台进行数据交互
* XMLHttpRequest
*
* url:请求网络地址
* type:请求方式:get post
* data:请求参数 字符串key=value&key1=value1
* callback:成功的回调函数 (接收后端请求过来的数据 )
* flas:是否异步
*/
function ajax(url, type, data, callback, flas) {
var xml = null;
if (window.XMLHttpRequest) {//现代浏览器都支持
xml = new XMLHttpRequest()//创建网络对象
} else {
//兼容IE6以下
xml = new ActiveXObject("Microsoft.XMLHTTP")//里面的字符串是固定写法,与浏览器大战有关,记住即可
}
if (type == "get") {
//flas为true时,open(需要时间)过程为异步,后面的js代码接续执行。
//flas为false时,open(需要时间)过程为同步,后面的代码要等open执行完才可以后面js代码接续执行。
xml.open(type, url + "?" + data, flas);//固定写法,可以查w3c手册
xml.send();//发送请求
} else if (type == "post") {
xml.open(type, url, flas)//请求为post时,不是请求数据,是发送数据
// application/json json 字符串或json对象
// multipart/form-data 上传文件 file
xml.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');//发送数据的类型
xml.send(data);
}
xml.onreadystatechange = function () {//监听请求状态,状态为1-4
if (xml.readyState == 4) {//如果状态为4时说明请求已经发送
/*
页面状态码:(具体的百度)
2**:请求成功
3**:请求被重定向
4**:请求错误
*/
if (xml.status == 200) {//如果后端发送的status为200时说明,请求数据已成功
//xml.responseText:请求的数据存放点
//请求后执行回调函数
callback(xml.responseText);
}
}
}
}
</script>