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

首頁 > 開發(fā) > AJAX > 正文

ajax獲取json數(shù)據(jù)為undefined原因分析

2024-09-01 08:27:01
字體:
供稿:網(wǎng)友

Asynchronous JavaScript and XML (Ajax ) 是驅(qū)動新一代 Web 站點(diǎn)(流行術(shù)語為 Web 2.0 站點(diǎn))的關(guān)鍵技術(shù)。Ajax 允許在不干擾 Web 應(yīng)用程序的顯示和行為的情況下在后臺進(jìn)行數(shù)據(jù)檢索。使用 XMLHttpRequest 函數(shù)獲取數(shù)據(jù),它是一種 API,允許客戶端 JavaScript 通過 HTTP 連接到遠(yuǎn)程服務(wù)器。Ajax 也是許多 mashup 的驅(qū)動力,它可將來自多個(gè)地方的內(nèi)容集成為單一 Web 應(yīng)用程序。

  一般處理服務(wù)器傳來的json值時(shí),我們都會用兩種方式進(jìn)行處理:

1.一種為使用eval()函數(shù)。var dataObj=eval("("+data+")");//轉(zhuǎn)換為json對象(注:data為json數(shù)據(jù));

2. 使用Function對象來進(jìn)行返回解析。var json =(new Function("","return "+data))();

       但是今天做項(xiàng)目(項(xiàng)目用struts2)時(shí)用這兩種方法進(jìn)行json讀取,輸出時(shí)一直是undefined。上網(wǎng)查了許多資料,大多都說不明白,后來查到一篇文章作者也遇到這種情況,他解決的辦法是在action中將返回值聲明json屬性,在自己的項(xiàng)目上測試后不通過,后來解決的辦法是再轉(zhuǎn)一次。以下是自己的思考:從后臺傳來的數(shù)據(jù)雖然聲明為json屬性,但是傳到前臺時(shí)其實(shí)還是一個(gè)字符串,不是一個(gè)json對象,這時(shí)候我們需要對后臺的數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)化為json對象,然后獲取json中的值。但是有時(shí)候后臺傳來的值不一定是標(biāo)準(zhǔn)的json格式的字符串,雖然我們通過前面的兩種方法之一轉(zhuǎn)化后臺傳來的對象,但是這時(shí)候轉(zhuǎn)化的json對象實(shí)際上還是一個(gè)字符串,是一個(gè)標(biāo)準(zhǔn)的json字符串,我們再一次轉(zhuǎn)換后就成了一個(gè)json對象。

      以下是部分代碼:       

 result = JSONObject.fromObject(map).toString();//后臺代碼,將map轉(zhuǎn)成json對象      success : function(result) {//前臺返回值代碼var obj = eval("("+result+")");//var data1 =(new Function("","return "+obj))();var data1=eval("("+obj+")");alert(data1.name);      }

總結(jié)

以上所述是小編給大家介紹的ajax獲取json數(shù)據(jù)為undefined原因分析,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對錯(cuò)新站長站網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 玉山县| 句容市| 中宁县| 拉萨市| 称多县| 喜德县| 牙克石市| 鄂托克前旗| 高碑店市| 上虞市| 政和县| 庆安县| 朔州市| 资兴市| 呼和浩特市| 海淀区| 沿河| 上饶市| 龙南县| 宜都市| 新乐市| 深水埗区| 双鸭山市| 读书| 太仓市| 临江市| 德令哈市| 通化市| 乌拉特中旗| 沭阳县| 双峰县| 保亭| 康乐县| 闽侯县| 昌邑市| 松溪县| 西乌珠穆沁旗| 德江县| 临清市| 洛阳市| 凤台县|