ajax請(qǐng)求返回的數(shù)據(jù)看不到回調(diào)函數(shù)沒(méi)有執(zhí)行也沒(méi)報(bào)錯(cuò)
更新時(shí)間:2014年01月23日 15:47:28 作者:
ajax請(qǐng)求返回的數(shù)據(jù)看不到回調(diào)函數(shù)沒(méi)有執(zhí)行,哪里都沒(méi)有報(bào)錯(cuò),有類似情況的朋友可以參考下本文
項(xiàng)目用的是ssh,使用jquery的$.post訪問(wèn)struts2的Action,哪里都沒(méi)有報(bào)錯(cuò),可就是沒(méi)有結(jié)果。
現(xiàn)在$.post要返回保存著權(quán)限的集合Collection<Privilege>,權(quán)限類Privilege和用戶類User相互關(guān)聯(lián),也就是Privilege里使用set集合保存著擁有這個(gè)權(quán)限的用戶Set<User>,用戶User里也使用set集合保存著用戶有的權(quán)限Set<Privilege>。數(shù)據(jù)都到action里了,但是回調(diào)函數(shù)沒(méi)有執(zhí)行,并且使用瀏覽器調(diào)試也沒(méi)看到返回的數(shù)據(jù),最后找了半天,原因如下:
jquery在解析返回的Collection<Privilege>集合時(shí),看到里面有一個(gè)Set<User>,就會(huì)去得到集合中的數(shù)據(jù),但是Collection<Privilege>是service里的一個(gè)方法返回的,而這個(gè)時(shí)候spring的事務(wù)已經(jīng)結(jié)束,也就不會(huì)查到Set<User>中的數(shù)據(jù)。jquery解析空的集合就會(huì)出錯(cuò),所以得不到數(shù)據(jù)。
解決辦法:在Privilege里的getUser()方法加上這個(gè)注解@JSON(serialize=false),這樣jquery在解析的時(shí)候就會(huì)忽略這個(gè)集合中的數(shù)據(jù)。當(dāng)然,如果數(shù)據(jù)要用到,那就要在service中把這些數(shù)據(jù)先查到,放到集合中。
現(xiàn)在$.post要返回保存著權(quán)限的集合Collection<Privilege>,權(quán)限類Privilege和用戶類User相互關(guān)聯(lián),也就是Privilege里使用set集合保存著擁有這個(gè)權(quán)限的用戶Set<User>,用戶User里也使用set集合保存著用戶有的權(quán)限Set<Privilege>。數(shù)據(jù)都到action里了,但是回調(diào)函數(shù)沒(méi)有執(zhí)行,并且使用瀏覽器調(diào)試也沒(méi)看到返回的數(shù)據(jù),最后找了半天,原因如下:
jquery在解析返回的Collection<Privilege>集合時(shí),看到里面有一個(gè)Set<User>,就會(huì)去得到集合中的數(shù)據(jù),但是Collection<Privilege>是service里的一個(gè)方法返回的,而這個(gè)時(shí)候spring的事務(wù)已經(jīng)結(jié)束,也就不會(huì)查到Set<User>中的數(shù)據(jù)。jquery解析空的集合就會(huì)出錯(cuò),所以得不到數(shù)據(jù)。
解決辦法:在Privilege里的getUser()方法加上這個(gè)注解@JSON(serialize=false),這樣jquery在解析的時(shí)候就會(huì)忽略這個(gè)集合中的數(shù)據(jù)。當(dāng)然,如果數(shù)據(jù)要用到,那就要在service中把這些數(shù)據(jù)先查到,放到集合中。
您可能感興趣的文章:
- jQuery Ajax Post 回調(diào)函數(shù)不執(zhí)行問(wèn)題的解決方法
- Javascript基于AJAX回調(diào)函數(shù)傳遞參數(shù)實(shí)例分析
- ajax回調(diào)函數(shù)中使用$(this)取不到對(duì)象的解決方法
- 解決ajax回調(diào)函數(shù)返回的字符串亂碼問(wèn)題
- ajax異步回調(diào)函數(shù)中給外部變量賦值的問(wèn)題探討
- ajax JSONP請(qǐng)求處理回調(diào)函數(shù)jsonpCallback區(qū)分大小寫(xiě)
- jQuery Tips 為AJAX回調(diào)函數(shù)傳遞額外參數(shù)的方法
- ajax回調(diào)函數(shù)參數(shù)傳遞正確方法
- JQuery中使用Ajax賦值給全局變量失敗異常的解決方法
- ajax給全局變量賦值問(wèn)題解決示例
- JQuery中使用Ajax賦值給全局變量異常的解決方法
- jquery ajax修改全局變量示例代碼
- Ajax獲取回調(diào)函數(shù)無(wú)法賦值給全局變量的問(wèn)題
相關(guān)文章
ASP+Ajax實(shí)現(xiàn)無(wú)刷新評(píng)論簡(jiǎn)單例子
ASP+Ajax實(shí)現(xiàn)無(wú)刷新評(píng)論簡(jiǎn)單例子...2007-07-07Ajax對(duì)xml信息的接收和處理操作實(shí)例分析
這篇文章主要介紹了Ajax對(duì)xml信息的接收和處理操作,結(jié)合實(shí)例形式分析了ajax針對(duì)xml結(jié)構(gòu)信息的相關(guān)處理操作技巧,需要的朋友可以參考下2019-07-07jquery ajax提交表單從action傳值到j(luò)sp實(shí)現(xiàn)小結(jié)
pw.print(random);這里的random就是action要向jsp傳的值,在jsp中,success: function(text)這里的text就是接收從action傳過(guò)來(lái)的值,感興趣的朋友可以參考下哈2013-04-04Ajax跨域查詢完美解決通過(guò)$.getJSON()實(shí)現(xiàn)
瀏覽器安全上做了限制,禁止ajax跨域獲得數(shù)據(jù),可以通過(guò)jquery提供的$.getJSON()可以跨域獲得JSON格式的數(shù)據(jù),具體的實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-06-06關(guān)于Ajax異步請(qǐng)求后臺(tái)數(shù)據(jù)進(jìn)行動(dòng)態(tài)分頁(yè)功能
這篇文章主要介紹了Ajax異步請(qǐng)求后臺(tái)數(shù)據(jù)進(jìn)行動(dòng)態(tài)分頁(yè)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2018-06-06ajax用json實(shí)現(xiàn)數(shù)據(jù)傳輸
本文主要介紹了ajax用json實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)姆椒?,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03