使用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;
    }

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

原文地址:https://www.cnblogs.com/thinkingandworkinghard/p/8475500.html

时间: 2024-11-05 16:01:14

使用ajax请求后返回数据显示undefinded解决办法的相关文章

ajax请求后返回的时间转换格式

1.以前见过//@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")  这种方式,但是最近用的时候不好使 2.一个比较不通用的方法解决了问题. import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import org.codehaus.jackson.JsonGenerator; import org.codehaus.ja

关于多个Ajax请求执行返回先后的问题

注:转载请在显著地方标注来源 有时候在一个业务事件处理流程上,可能会遇到点击了一个按钮或者其他事件触发了一个动作 需要执行两个以上的Ajax请求,但是可能要顾虑到Ajax请求执行的先后顺序,有时候Ajax请求顺序出问题,会导致各种问题 例如现在有两个ajax事件,分别为ajax1 ,ajax2 一个叫做main的方法调用执行入口 1. function main(){ ajax1(data,callback); ajax2(data,callback); } 如果我们按照上面的方法去执行,表面上

Ajax请求php返回json对象数据中包含有数字索引和字符串索引,在for in循环中取出数据的顺序问题

//php中的数组数据格式 Array ( [all] => Array ( [title] => ALL [room_promotion_id] => all ) [best_available_rate] => Array ( [title] => Best Available Rate [room_promotion_id] => best_available_rate ) [30] => Array ( [room_promotion_id] =>

SpringMVC Ajax请求时返回json中文字符串的乱码问题的解决方案

1.org.springframework.http.converter.StringHttpMessageConverter类是处理请求或相应字符串的类,并且默认字符集为ISO-8859-1,所以在当返回json中有中文时会出现乱码. 2.StringHttpMessageConverter的父类里有个List<MediaType> supportedMediaTypes属性,用来存放StringHttpMessageConverter支持需特殊处理的MediaType类型,如果需处理的Me

ajax请求firefox返回NS_BINDING_ABORTED

在ligergrid中请求链接,post提交,返回NS_BINDING_ABORTED. 是因为ligergrid中默认是异步提交方式,如果没有设置同步的话, 在请求该链接的时候第一次请求还没有执行完毕,如果又发生了第二次请求的话, 第一个请求就会中断,从而返回NS_BINDING_ABORTED. ajax请求firefox返回NS_BINDING_ABORTED

Ajax请求ashx 返回 json 格式数据常见问题

问题:ashx 返回的字符串json格式,在前台ajax自动解析失败. 问题分析:经过排查,发现是拼接json时出现” ’  “单引号,jquery无法解析,用” “ “双引号才可以.例如: string strjson="[ { 'userName':'test'}]"; //单引号导致jquery无法自动解析. string strjson="[ {\"userName\":\"test\"}]"; // 双引号可以解析:

ajax请求成功返回200,但还是进入error事件

ajax请求成功返回200,但还是进入error事件. 出错原因: 前台dataType:"json",而后台返回的数据不符合json规范. 解决方案有两种: 1.前台:让ajax数据返回类型为text而不是json:即dataType: "text"; 2.后台:修改后台返回值 原文地址:https://www.cnblogs.com/Fourteen-Y/p/11307392.html

Ajax回退刷新页面问题的解决办法

在脚本之家看到一篇文章,觉得以后可能会用上,但是竟然不能收藏,所以只能将其转到博客园. 以下是原文地址: http://www.jb51.net/article/87856.htm 这篇文章主要介绍了Ajax回退刷新页面问题的解决办法的相关资料,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧 Ajax 简介: AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异

android在view.requestFocus(0)返回false的解决办法

我们有时候想让listview的第一行自动获取到焦点,我们就会使用view.requestFocus(0)来操作,而有时候并不生效,debug后显示rerurn为false. 这是因为我们获取焦点太早,listview控件还为加载完毕.可以尝试一下方法解决: listview.post(new Runnable(){ @Override public void run(){ view.requestFocus(0); } }); ok,问题解决! android在view.requestFocu