zoukankan      html  css  js  c++  java
  • 使用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;
        }

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

  • 相关阅读:
    js字符串String常用方法
    flexible.js结合rem实现移动端自适应布局
    Django API验证(令牌)
    错误堆栈信息
    JS Ajax异步请求发送列表数据后面多了[]
    根据后端传的时间前端js进行倒计时
    Vue select 下拉菜单
    centos 6.x 部署uwsgi+flask项目
    css 让背景图片不停旋转
    supervisor管理uwsgi
  • 原文地址:https://www.cnblogs.com/thinkingandworkinghard/p/8475500.html
Copyright © 2011-2022 走看看