淺析Ajax后臺(tái)success傳來(lái)json數(shù)據(jù)的問(wèn)題
最近在使用JQuery的ajax方法時(shí),需要返回的數(shù)據(jù)為json數(shù)據(jù),在success返回中數(shù)據(jù)處理會(huì)根據(jù)返回方式不同會(huì)采用不同的方式來(lái)生成json數(shù)據(jù)。在$.ajax方法中應(yīng)該是如何來(lái)處理的,簡(jiǎn)單進(jìn)行說(shuō)明。
首先給出要傳的json數(shù)據(jù):[{"demoData":"This Is The JSON Data"}]
1,使用普通的aspx頁(yè)面來(lái)處理
$.ajax({ type: "post", url: "Default.aspx", dataType: "json", success: function (data) { $("input#showTime").val(data[0].demoData); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert(errorThrown); } });
這里是后臺(tái)傳遞數(shù)據(jù)的代碼
Response.Clear(); Response.Write("[{\"demoData\":\"This Is The JSON Data\"}]"); Response.Flush(); Response.End();
這種處理的方式將傳遞過(guò)來(lái)的數(shù)據(jù)直接解析為json數(shù)據(jù),也就是說(shuō)這里的前臺(tái)js代碼可能直接把這些數(shù)據(jù)解析成json對(duì)象數(shù)據(jù),而并非字符串?dāng)?shù)據(jù),如data[0].demoData,這里就直接使用了這個(gè)json對(duì)象數(shù)據(jù)
2,使用webservice(asmx)來(lái)處理
這種處理方式就不會(huì)將傳遞過(guò)來(lái)的數(shù)據(jù)當(dāng)成是json對(duì)象數(shù)據(jù),而是作為字符串來(lái)處理的,如下代碼
$.ajax({ type: "post", url: "JqueryCSMethodForm.asmx/GetDemoData", dataType: "json",/*這句可用可不用,沒(méi)有影響*/ contentType: "application/json; charset=utf-8", success: function (data) { $("input#showTime").val(eval('(' + data.d + ')')[0].demoData); //這里有兩種對(duì)數(shù)據(jù)的轉(zhuǎn)換方式,兩處理方式的效果一樣 //$("input#showTime").val(eval(data.d)[0].demoData); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert(errorThrown); } });
下面這里為asmx的方法代碼
public static string GetDemoData() { return "[{\"demoData\":\"This Is The JSON Data\"}]"; }
這里的這種處理方式就把傳遞回來(lái)的json數(shù)據(jù)當(dāng)成了字符串來(lái)處理的,所在就要對(duì)這個(gè)數(shù)據(jù)進(jìn)行eval的處理,這樣才能成為真正的json對(duì)象數(shù)據(jù)。
即
success:function(data){ eval(data); }
以上所述是小編給大家介紹的Ajax后臺(tái)success傳來(lái)json數(shù)據(jù)的問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
ajax回調(diào)函數(shù)中使用$(this)取不到對(duì)象的解決方法
如果在ajax的回調(diào)函數(shù)內(nèi)使用$(this)的話,實(shí)踐證明,是取不到任何對(duì)象的,需要的朋友可以參考下2014-06-06使用Ajax方法實(shí)現(xiàn)Form表單的提交及注意事項(xiàng)
這篇文章主要介紹了使用Ajax方法實(shí)現(xiàn)Form表單的提交及注意事項(xiàng),需要的朋友可以參考下2017-07-07不使用XMLHttpRequest對(duì)象實(shí)現(xiàn)Ajax效果的方法小結(jié)
這篇文章主要介紹了不使用XMLHttpRequest對(duì)象實(shí)現(xiàn)Ajax效果的方法,結(jié)合具體實(shí)例形式分析了三種不使用XMLHttpRequest對(duì)象實(shí)現(xiàn)Ajax功能的相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-07-07ajax中用josnp接收josn數(shù)據(jù)的實(shí)現(xiàn)方法
下面小編就為大家分享一篇ajax中用josnp接收josn數(shù)據(jù)的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12IIS7中Ajax.AjaxMethod無(wú)效的原因及解決方法
使用Ajax.AjaxMethod方法在asp.net的服務(wù)器下一切正常,用iis的時(shí)候,js中總是cs類找不到,具體的解決方法如下,遇到類似情況的朋友可以參考下2013-07-07用juery的ajax方法調(diào)用aspx.cs頁(yè)面中的webmethod方法示例
juery的ajax調(diào)用aspx.cs頁(yè)面中的webmethod方法:首先在 aspx.cs文件里建一個(gè)公開(kāi)的靜態(tài)方法,然后加上WebMethod屬性,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-07-07php ajax網(wǎng)站瀏覽統(tǒng)計(jì)功能的簡(jiǎn)單實(shí)現(xiàn)
這個(gè)功能應(yīng)該是很多網(wǎng)站都需要的,這里僅僅實(shí)現(xiàn)了一個(gè)基于文件的簡(jiǎn)易版本,數(shù)據(jù)庫(kù)的版本請(qǐng)自行參考實(shí)現(xiàn),我這里實(shí)現(xiàn)的功能很不完善,比如未過(guò)濾是否為同一訪客,是否為同一IP等等,這里僅僅是給大家提供一個(gè)參考.2008-09-09