使用ajax请求后返回数据显示undefinded解决办法

Posted Doyourself!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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;
    }

比较了下,就是赋值的时候写了一个全局变量。。。

以上是关于使用ajax请求后返回数据显示undefinded解决办法的主要内容,如果未能解决你的问题,请参考以下文章

ajax return 的问题

使用ajax发送异步请求,请求后端的控制层方法,并且获取这个方法返回的日期,然后显示在页面上?

ajax请求接口里的数据,然后显示在页面里

页面一个post请求,后台执行将近5分钟后返回结果但是页面获取不到返回值,一直显示加载中,不是ajax请求

ajax请求先发后至问题处理

Jquery——AJAX应用篇