ajax可以處理伺服器回傳哪些資料類型?
這次帶給大家ajax可以處理伺服器回傳哪些資料型別? ,ajax處理伺服器回傳資料型別的注意事項有哪些,以下就是實戰案例,一起來看一下。
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); } } }
伺服器端傳回資料格式如下:
例如:
//返回的是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 '<user><mes>请输入用户名</mes></user>'; //这些标签可以自定义 else if($username == 'acme') echo '<user><mes>用户名已被注册</mes></user>'; else echo '<user><mes>用户名可用</mes></user>';
呼叫格式如下:
var url = 'abc.php'; var jsonData = {username:'acme'}; ajaxXML(url,jsonData,'mes',getMsg); function getMsg(msg) { //do something }
3.傳回json
函數如下:
/** * @function 利用ajax动态交换数据(Text/HTML格式),但是返回的是Json类型的文本数据 * @param url 要提交请求的页面 * @param jsonData 要提交的数据,利用Json传递 * @param getMsg 这个函数可以获取到处理后的数据 */ function ajaxJson(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) { var json = eval('('+oAjax.responseText+')');//把传回来的字符串解析成json对象 if(getMsg)getMsg(json); } } }
伺服器端傳回資料格式如下:
#例如:
//返回的是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 '{"mes":"请输入用户名"}'; else if($username == 'acme') echo '{"mes":"用户名已被注册"}'; else echo '{"mes":"用户名可用"}';
呼叫格式如下:
url = 'abc.php'; var jsonData={username:'acme',passw:'acme'}; ajaxText(url,jsonData,getMsg); function getMsg(msg) { //do something }
為了方便使用,可以把三個函數合併.合併後的函數如下:
/** * @function 利用ajax动态交换数据 * @param url 要提交请求的页面 * @param jsonData 要提交的数据,利用Json传递 * @param getMsg 这个函数可以获取到处理后的数据 * @param type 接受的数据类型,text/xml/json * @param tagName type = xml 的时候这个参数设置为要获取的文本的标签名 * @return 无 */ function ajax(url,jsonData,getMsg,type,tagName) { //创建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(type == 'text') { if(getMsg) getMsg(oAjax.responseText); } else if(type == 'json') { var json = eval('('+oAjax.responseText+')');//把传回来的字符串解析成json对象 if(getMsg)getMsg(json); } else if(type == 'xml') { var oXml = oAjax.responseXML; //返回的是一个XML DOM对象 var oTag = oXml.getElementsByTagName(tagName); var tagValue = oTag[0].childNodes[0].nodeValue; if(getMsg)getMsg(tagValue); } } } }
相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦閱讀:
以上是ajax可以處理伺服器回傳哪些資料類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

RPC伺服器不可用進不了桌面怎麼辦近年來,電腦和網路已經深入到我們的生活中的各個角落。作為一種集中運算和資源共享的技術,遠端過程呼叫(RPC)在網路通訊中起著至關重要的作用。然而,有時我們可能會遇到RPC伺服器無法使用的情況,導致無法進入桌面。本文將介紹一些可能導致此問題的原因,並提供解決方案。首先,我們需要了解RPC伺服器不可用的原因。 RPC伺服器是一種

身為LINUX用戶,我們經常需要在CentOS上安裝各種軟體和伺服器,本文將詳細介紹如何在CentOS上安裝fuse和建置伺服器的過程,幫助您順利完成相關操作。 CentOS安裝fuseFuse是一個使用者空間檔案系統框架,允許非特權使用者透過自訂檔案系統實現對檔案系統的存取和操作,在CentOS上安裝fuse非常簡單,只需按照以下步驟操作:1.開啟終端,以root用戶登入。 2.使用下列指令安裝fuse軟體包:```yuminstallfuse3.確認安裝過程中的提示,輸入`y`繼續。 4.安裝完

DHCP中繼的作用是將接收到的DHCP封包轉送到網路上的另一個DHCP伺服器,即使這兩台伺服器位於不同的子網路中。透過使用DHCP中繼,您可以實現在網路中心部署集中式的DHCP伺服器,並利用它為所有網路子網路/VLAN動態分配IP位址。 Dnsmasq是一種常用的DNS和DHCP協定伺服器,可設定為DHCP中繼伺服器,以協助管理網路中的動態主機設定。在本文中,我們將向您展示如何將dnsmasq配置為DHCP中繼伺服器。內容主題:網路拓樸在DHCP中繼上設定靜態IP位址集中式DHCP伺服器上的D

在網路資料傳輸中,IP代理伺服器扮演著重要的角色,能夠幫助使用者隱藏真實IP位址,保護隱私、提升存取速度等。在本篇文章中,將介紹如何用PHP建立IP代理伺服器的最佳實務指南,並提供具體的程式碼範例。什麼是IP代理伺服器? IP代理伺服器是位於使用者與目標伺服器之間的中間伺服器,它可作為使用者與目標伺服器之間的中轉站,將使用者的請求和回應轉發。透過使用IP代理伺服器

標題:解決jQueryAJAX請求出現403錯誤的方法及程式碼範例403錯誤是指伺服器禁止存取資源的請求,通常會導致出現這個錯誤的原因是請求缺少權限或被伺服器拒絕。在進行jQueryAJAX請求時,有時會遇到這種情況,本文將介紹如何解決這個問題,並提供程式碼範例。解決方法:檢查權限:首先要確保請求的URL位址是正確的,同時驗證是否有足夠的權限來存取該資

使用PHP和Ajax建置自動完成建議引擎:伺服器端腳本:處理Ajax請求並傳回建議(autocomplete.php)。客戶端腳本:發送Ajax請求並顯示建議(autocomplete.js)。實戰案例:在HTML頁面中包含腳本並指定search-input元素識別碼。

epic伺服器離線進不了遊戲怎麼辦?這個問題想必很多小夥伴都有遇過,出現了此提示就是導致正版的遊戲無法啟動,那麼出現這個問題一般是網絡和安全軟體幹擾導致的,那麼應該怎麼解決呢,本期小編就來和大夥分享解決方法,希望今日的軟體教學可以幫助各位解決問題。 epic伺服器離線進不了遊戲怎麼辦: 1、很可能是被安全軟體幹擾了,將遊戲平台和安全軟體關閉在重啟。 2、其次就是網路波動過大,嘗試重啟一次路由器,看看是否有效,如果條件可以的話,可以嘗試使用5g移動網絡來進行操作。 3、然後有可能是更

jQuery是一個受歡迎的JavaScript函式庫,用來簡化客戶端端的開發。而AJAX則是在不重新載入整個網頁的情況下,透過發送非同步請求和與伺服器互動的技術。然而在使用jQuery進行AJAX請求時,有時會遇到403錯誤。 403錯誤通常是伺服器禁止存取的錯誤,可能是由於安全性原則或權限問題導致的。在本文中,我們將討論如何解決jQueryAJAX請求遭遇403錯誤
