jquery使用ajax的坑

獲取js方法中的ajax的返回值

由於需求在一個頁面中有多個ajax,而需要提前獲取某個ajax,其ajax的內容返回值在另外一個方法中會用到。
我的需求:先獲取到是否有登錄對象(這個方法同時被多次使用,封裝成了方法),再在另一個方法中使用此ajax返回值,判斷是否存在登錄的用戶。(當然**ajax可以嵌套使用,就沒有我這個坑了!**)

正確的封裝:

	function loginUser() {
        var results ;
        $.ajax({
            type:"GET",
            url:"user/isLogin",//servlet的請求路徑(查詢是否存在當前登錄用戶,並返回一個)
            resultData:"json",
            async:false ,//保證此ajax執行完畢
            // 試試這個需要異步: Cannot read property 'data' of undefined
            success:function (result) {//返回的resultInfo對象
                //console.log(result) ;//這裏結果返回值一切正常
                results = result ;
                return result ;//無法返到新的方法中
            }
        });
         return results ;//必須在ajax外返回纔有效
        //小結:想要獲取的方法中的ajax返回值,必須具備兩個條件
        /*
            1.此ajax必須是同步的(保證ajax先執行完,否則又會去執行下面的內容,導致找不到這個值的報錯)
            2.return必須要在ajax外,方法內返回,只在ajax中返回無法接收到
         */
         }

不滿足以上條件:均會報 找不到ajax中的返回值 錯誤
均會報找不到ajax返回值這個錯誤

小結

1.此ajax必須是同步的:async:false(保證ajax先執行完,否則又會去執行下面的內容,導致找不到這個值的報錯)
2.return必須要在ajax外,方法內返回,只在ajax中返回無法接收到



此文來自本人java的web項目所遇到的問題,若有誤,非常歡迎指正!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章