现在的位置: 首页 > 综合 > 正文

ajax通用框架

2013年12月23日 ⁄ 综合 ⁄ 共 3121字 ⁄ 字号 评论关闭
 

/*
*   XMLHttpRequest对象初始化
*/

function initXMLHttpRequest() {
     
var http_request;
     
if (window.XMLHttpRequest) // 支持IE7,Mozilla, Safari, ...
         http_request = new XMLHttpRequest();
     }

     
else if (window.ActiveXObject) // 支持IE
         http_request = new ActiveXObject("Microsoft.XMLHTTP");
     }

     
return http_request;
}

/*
* ajax调用(不传参数,直接得到表单上的所有值)
* @param url   获取数据的URL
* @param divId 插入节点id
* @param element 自定义的responseXML节点名称,如果为空,则为text对象
* @param para 参数名(如果不输入,则为提交整个表单的参数)
*/

function ajax(http_request, url, divId, element, para)
{
     
var htmlProcess = "加载中...";
     
if (typeof(element) == "undefined" || "" == element)
         http_request.onreadystatechange 
= callbackText;
     
else
         http_request.onreadystatechange 
= callbackXML;
     
var linkUrl;
     
if (typeof(para) == "undefined")
     
{
         
var allInputValue = getUrl();
         linkUrl 
= url + allInputValue;
     }

     
else
     
{
         linkUrl 
= url + para;
     }

     
// 确定发送请求的方式和URL以及是否同步执行下段代码
     http_request.open("POST", linkUrl, true);
     
//   http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
     http_request.send(null);

     
/*
     * 返回responseText
     
*/

     
function callbackText() {
         
if (http_request.readyState == 4{
             divId.innerHTML 
= htmlProcess;
             
if (http_request.status == 200 || http_request.status == 0{
                 divId.innerHTML 
= http_request.responseText;
             }

         }

         
else {
             divId.innerHTML 
= htmlProcess;
         }

     }

     
/*
     * 返回responseXML
     
*/

     
function callbackXML() {
         
if (http_request.readyState == 4{
             
if (http_request.status == 200 || http_request.status == 0{
                 
var mes = http_request.responseXML.getElementsByTagName(element)[0].firstChild.data;
                 divId.innerHTML 
= mes;
             }

         }

     }

}


/*
* 得到表单上所有input框的值
*/

function getUrl() {
     
var str = "";
     
//input框
     var tgname = "input";
     
var inputNode = document.getElementsByTagName(tgname);
     
for (var i = 0; i < inputNode.length; i++{
         
//得到input框的name字段的值
         var nodeNames = inputNode[i].getAttribute("name");
         str 
= str + nodeNames + "=" + inputNode[i].value + "&";
     }

     
var url = "?" + str;
     
return url;
}


/*
* XML方式得到返回到页面的值
*/

function getElement(http_request, url, element, username) {
     
var allInputValue = getUrl();
     linkUrl 
= url + allInputValue;
     
// 确定发送请求的方式和URL以及是否同步执行下段代码
     http_request.open("POST", linkUrl, true);
     
//   http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
     http_request.send(null);
     http_request.onreadystatechange 
= callbackXML;
     
function callbackXML() {
         
if (http_request.readyState == 4{
             
if (http_request.status == 200 || http_request.status == 0{
                 
var mes = http_request.responseXML.getElementsByTagName(element)[0].firstChild.data;
                 username.value 
= mes;
             }

         }

     }


 
【上篇】
【下篇】

抱歉!评论已关闭.