封装一个简易版的ajax操作对象
程序员文章站
2022-05-02 11:35:55
```javascript
/** * 发送ajax请求 * @type {Object} * 使用方法如下: * $ajax.request( * method: "post", //请求方式 * url: "index.php", //请求的服务器地址 * data: "name=itbsl&a... ......
/** * 发送ajax请求 * @type {object} * 使用方法如下: * $ajax.request( * method: "post", //请求方式 * url: "index.php", //请求的服务器地址 * data: "name=itbsl&age=20",//请求时携带的参数 * datatype: "xml", //期望服务器回应的数据 * callback: function(res) { //请求成功后的回调函数 * //处理数据 * } * ); */ var $ajax = { request: function(obj) { //创建对象 var xmlhttp; if(window.xmlhttprequest) { //code for ie7+, firefox, chrome, opera, safari xmlhttp = new xmlhttprequest(); } else { //code for ie6, ie5 xmlhttp = new activexobject("microsoft.xmlhttp"); } //建立连接 if(obj.method == 'get') { xmlhttp.open(obj.method, obj.url+"?"+obj.data+"&"+math.random(), true); xmlhttp.send(); } if(obj.method == 'post') { xmlhttp.open(obj.method, obj.url, true); xmlhttp.setrequestheader("content-type","application/x-www-form-urlencoded"); xmlhttp.send(obj.data); } //监视请求的状态 xmlhttp.onreadystatechange = function () { if(xmlhttp.readystate == 4 && xmlhttp.status == 200) { if(obj.datatype == 'xml') { obj.callback(xmlhttp.responsexml); } else if(obj.datatype == 'text') { eval("var res = " + xmlhttp.responsetext); obj.callback(res); } } } } }