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