ajax是前端工程中与后台进行数据交互的一门重要技术,通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。jquery中对ajax进行了封装,可以直接使用.下面是自己封装的一个ajax的js文件,感兴趣的朋友可以下载使用,
以下封装的ajax代码,可以帮助大家了解ajax的整个操作过程,告诉大家ajax是如何进行交互的.
function AJAX(obj) { //做网络请求的时候 ,参数以对象的形式传递进来
//规定:obj里面包含属性:1.url //2.type --- get 还是 post //3.data --- 前端给后端传递的参数(前端传递的时候以对象的形式) //4.回调函数 --- success //5.回调函数 --- error var ajaxObj = null; if (window.XMLHttpRequest) { ajaxObj = new XMLHttpRequest(); } else { ajaxObj = new ActiveXObject("Microsoft.XMLHTTP"); } ajaxObj.onreadystatechange = function() { if (ajaxObj.readyState == 4) { if (ajaxObj.status >= 200 && ajaxObj.status < 300 || ajaxObj.status == 304) { if (obj.success) { obj.success(JSON.parse(ajaxObj.responseText)); } else { alert("您忘记了success函数"); } } else { if (obj.error) { obj.error(ajaxObj.status); } else { alert("您忘记了error函数"); } } } } //type转化为小写,方便使用 var type = obj.type || "get"; var type = type.toLowerCase(); //判断是否传递了参数 var params = ""; if (obj.data) { for (var key in obj.data) { params += (key + "=" + obj.data[key] + "&"); } params = params.slice(0, params.length - 1); }if (type == "get") {
ajaxObj.open(type, obj.url + "?" + params, true); ajaxObj.send(); } else { ajaxObj.open(type, obj.url, true); ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); ajaxObj.send(params); }}
//欢迎大家提出改进建议