posts - 0, comments - 77, trackbacks - 0, articles - 356
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          AJAX基本框架

          Posted on 2008-04-19 15:11 semovy 閱讀(445) 評論(0)  編輯  收藏 所屬分類: ajax
          //創建XMLHttpRequest對象
          function getXMLHttpRequest()
          {
           http_request = false;
           if(window.XMLHttpRequest)
           {
            http_request = new XMLHttpRequest();
            if(http_request.overrideMimeType)
             http_request.overrideMimeType("text/xml");
           }
           else
           {
            if(window.ActiveXObject)
            {
             try
             {
              http_request = new ActiveXObject("Msxml2.XMLHTTP");
             }
             catch(e)
             {
              try
              {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
              }catch(e)
              {
               
              }
             }
            }
           }
           return http_request;
          }
          //發送請求
          /*
           @http_request 異步請求對象
           @url 請求位置
           @method 請求方法
           @content 請求內容 eg. param1=xxx1&param2=xxx2
           @callBack 請求回調
          */
          function send_request(http_request,url,method,content,callBack)
          {
           if(!http_request)
           {
            alert('無法創建異步請求對象!');
            return;
           }
           http_request.onreadystatechange = callBack;
           if(method.toUpperCase() == 'GET')
           {
            http_request.open(method,url,true);
            http_request.setRequestHeader('Content-Type','text/html;charset=UTF-8');
           }
           else if(method.toUpperCase == 'POST')
           {
            http_request.open(method,url,true);
            http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
           }
           else
           {
            alert('請求方法出錯!');
            return;
           }
           http_request.send(content);
          }
          //返回文本的
          function getWebContent()
          {
           var webConReq = getXMLHttpRequest();//ajax不支持跨跨域訪問
           send_request(webConReq,'./servlet/testServlet','get',null,
           function()
           {
            if(webConReq.readyState == 4)
            {
             if(webConReq.status == 200)
             {
              var doc = webConReq.responseText;
              if(doc)
              {
               document.getElementById("pageCon").innerHTML = doc;
              }
             }
             else
             {
              alert('請求失敗!');
             }
            }
           }
           );
          }
          //返回xml
          function getXml()
          {
           var webConReq = getXMLHttpRequest();//ajax不支持跨跨域訪問
           send_request(webConReq,'./NewFile.xml','get',null,
           function()
           {
            if(webConReq.readyState == 4)
            {
             if(webConReq.status == 200)
             {
              var doc = webConReq.responseXML;
              if(doc)
              {
               var root = doc.getElementsByTagName("items")[0];
               var items = root.getElementsByTagName("item");
               var html = '';
               for(var i=0;i<items.length;i++)
               {
                html += "id:" + items[i].getAttribute('id');
                html += " name:" + items[i].getAttribute('name');
               }
               document.getElementById("xml").innerHTML = html;
              }
             }
             else
             {
              alert('請求失敗!');
             }
            }
           }
           );
          }

            <a href="javascript:getWebContent();">異步獲取頁面</a> 
            <font id="pageCon"></font><br>
            <a href="javascript:getXml();">異步XML</a> 
            <font id="xml"></font>
          主站蜘蛛池模板: 仁布县| 松潘县| 子洲县| 随州市| 南充市| 韶山市| 吴堡县| 唐海县| 莲花县| 拉孜县| 历史| 澄迈县| 江达县| 河北省| 深州市| 张家口市| 新巴尔虎右旗| 志丹县| 泸西县| 横山县| 贵州省| 万年县| 北辰区| 犍为县| 铁岭县| 理塘县| 乌拉特前旗| 梅河口市| 东台市| 新源县| 上犹县| 柳州市| 赣榆县| 新乡县| 泽库县| 新安县| 沾益县| 甘泉县| 湟中县| 南皮县| 太谷县|