- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) >
- ajax請求返回的數據看不到回調函數的原因是什么
本篇內容介紹了“ajax請求返回的數據看不到回調函數的原因是什么”的有關(guān)知識,在實(shí)際案例的操作過(guò)程中,不少人都會(huì )遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學(xué)有所成!
項目用的是ssh,使用jquery的$.post訪(fǎng)問(wèn)struts2的Action,哪里都沒(méi)有報錯,可就是沒(méi)有結果。
現在$.post要返回保存著(zhù)權限的集合Collection<Privilege>,權限類(lèi)Privilege和用戶(hù)類(lèi)User相互關(guān)聯(lián),也就是Privilege里使用set集合保存著(zhù)擁有這個(gè)權限的用戶(hù)Set<User>,用戶(hù)User里也使用set集合保存著(zhù)用戶(hù)有的權限Set<Privilege>。數據都到action里了,但是回調函數沒(méi)有執行,并且使用瀏覽器調試也沒(méi)看到返回的數據,最后找了半天,原因如下:
jquery在解析返回的Collection<Privilege>集合時(shí),看到里面有一個(gè)Set<User>,就會(huì )去得到集合中的數據,但是Collection<Privilege>是service里的一個(gè)方法返回的,而這個(gè)時(shí)候spring的事務(wù)已經(jīng)結束,也就不會(huì )查到Set<User>中的數據。jquery解析空的集合就會(huì )出錯,所以得不到數據。
解決辦法:在Privilege里的getUser()方法加上這個(gè)注解@JSON(serialize=false),這樣jquery在解析的時(shí)候就會(huì )忽略這個(gè)集合中的數據。當然,如果數據要用到,那就要在service中把這些數據先查到,放到集合中。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系站長(cháng)郵箱:ts@56dr.com進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2 建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站