使用ajax請求后返回數據顯示undefinded解決辦法


   今天在使用七牛的sdk做斷點續傳時候,當文件過大,本地沒有存儲時候,想要通過ajax將本地信息存到服務器緩存,之后通過讀取緩存的方式來完成文件過大斷點續傳無法使用問題。 但是在使用ajax請求的時候,發現賦值和請求通過server端都能夠請求到。但是請求顯示的時候顯示仍然是undefined。下面是自己的代碼:

  

//查詢服務器是否有該值
     function getLocalStorage(fileName){
        $.ajax({
            url  : "/live/get-localStorage",
            data : {fileName:fileName},
            type : "POST",
            dataType: "json",
            async:false,
            success: function(data){
                console.log("data:" + data);
                return eval("("+data+")");
            },
            error:function () {
                console.log("查詢出錯!")
            }
        });
    }

  剛開始時候是沒有添加async:false,后來看到ajax請求了但是結果出來的比較慢,想到ajax異步請求返回數據慢的問題,然后改為了同步。但是賦值時候仍然是undefined...

 

 原因不得而知,明明是后端也顯示出來了。之后看網上說在結果里面用一個方法來得到,再試了下可以了。代碼如下:

 

var temp;
    //查詢服務器是否有該值
     function getLocalStorage(fileName){
        $.ajax({
            url  : "/live/get-localStorage",
            data : {fileName:fileName},
            type : "POST",
            dataType: "json",
            async:false,
            success: function(data){
                temp  = data;
               // return eval("("+data+")");
            },
            error:function () {
                console.log("查詢出錯!")
            }
        });
        console.log("temp:" + temp);
        return temp;
    }

比較了下,就是賦值的時候寫了一個全局變量。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM