国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

ajax處理服務器返回的三種數據類型方法

2024-09-01 08:27:38
字體:
來源:轉載
供稿:網友

其原理很簡單,結構上基本不變,只是改變處理返回數據的方式.

1.Text/HTML格式
這種返回類型處理很簡單,直接就當作字符串用就行了.為了方便使用,封裝成如下函數:

/** * @function 利用ajax動態交換數據(Text/HTML格式) * @param url  要提交請求的頁面 * @param jsonData 要提交的數據,利用Json傳遞 * @param getMsg 這個函數可以獲取到處理后的數據 */function ajaxText(url,jsonData,getMsg){  //創建Ajax對象,ActiveXObject兼容IE5,6  var oAjax = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");  //打開請求  oAjax.open('POST',url,true);//方法,URL,異步傳輸  //發送請求  var data = '';  for(var d in jsonData)  //拼裝數據    data += (d + '=' +jsonData[d]+'&');  oAjax.setRequestHeader("Content-type","application/x-www-form-urlencoded");  oAjax.send(data);  //接收返回,當服務器有東西返回時觸發  oAjax.onreadystatechange = function ()  {    if(oAjax.readyState == 4 && oAjax.status == 200)    {      if(getMsg) getMsg(oAjax.responseText);    }  }}

服務器端返回數據格式如下:
例如:

//返回的是xml格式//header("Content-Type:text/xml;charset=utf-8");//返回的是text或Json格式header("Content-Type:text/html;charset=utf-8");//禁用緩存,是為了數據一樣的前提下還能正常提交,而不是緩存數據header("Cache-Control:no-cache");$username = $_POST['username']; //獲取用戶名if(empty($username))  echo '請輸入用戶名';else if($username == 'acme')  echo '用戶名已被注冊';else  echo '用戶名可用';

調用格式如下:

url = 'abc.php';var jsonData={username:'acme',passw:'acme'};ajaxText(url,jsonData,getMsg);function getMsg(msg){ //do something}

2.XML格式

返回的是一個XML DOM對象,解析其中的數據就類似于HTML DOM 編程. 比如通過name獲取標簽對象(數組形式),再從該數組中獲取需要的標簽對象,再從標簽對象中獲取文本值.
函數如下:

/** * @function 利用ajax動態交換數據(XML格式) * @param url  要提交請求的頁面 * @param jsonData 要提交的數據,利用Json傳遞 * @param tagName 要獲取值的標簽名 * @param getMsg 這個函數可以獲取到處理后的數據 */function ajaxXML(url,jsonData,tagName,getMsg){  //創建Ajax對象,ActiveXObject兼容IE5,6  var oAjax = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");  //打開請求  oAjax.open('POST',url,true);//方法,URL,異步傳輸  //發送請求  var data = '';  for(var d in jsonData)  //拼裝數據    data += (d + '=' +jsonData[d] + '&');  oAjax.setRequestHeader("Content-type","application/x-www-form-urlencoded");  oAjax.send(data);  //接收返回,當服務器有東西返回時觸發  oAjax.onreadystatechange = function ()  {    if(oAjax.readyState == 4 && oAjax.status == 200)    {      var oXml = oAjax.responseXML; //返回的是一個XML DOM對象      var oTag = oXml.getElementsByTagName(tagName);      var tagValue = oTag[0].childNodes[0].nodeValue;      if(getMsg)getMsg(tagValue);    }  }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石阡县| 闽清县| 延寿县| 望江县| 临沭县| 泉州市| 庆城县| 马鞍山市| 咸阳市| 东光县| 巴南区| 高平市| 大足县| 赤水市| 廉江市| 宝丰县| 南澳县| 汕尾市| 项城市| 珲春市| 和林格尔县| 泸西县| 宁都县| 潼南县| 阳城县| 大石桥市| 皮山县| 金华市| 新乡市| 泰顺县| 龙川县| 友谊县| 呼图壁县| 大城县| 尼勒克县| 竹山县| 郴州市| 调兵山市| 灵山县| 屏东市| 新郑市|