JavaScript说对象内部的已定义变量未定义

霍纳

我一直在找我在这里找到的Ajax上传教程我正在尝试检查服务器是否"error"作为状态返回我发现了,是data.result当我这样做console.log(data)的时候data被定义,result{"status":"error"}预期,但是当我尝试打电话给data.result在同一个函数,它返回undefined。我尝试了所有操作,在未定义全局变量时将其定义,甚至将其传递给另一个函数。这是我所拥有的:

    progress: function(e, data){
        // calc the completion percentage of the upload
        var progress = parseInt(data.loaded / data.total * 100, 10);
        console.log(data);
        /* console log:
            Object {disabled: false, create: null, dropZone: b.fn.b.init[1], pasteZone: b.fn.b.init[1], replaceFileInput: true…}
            (more values)
            result: "{"status":"error"}"
            (more values)
        */
        // update hidden input field and trigger a change
        data.context.find('input').val(progress).change();

        if(progress == 100){
            updateProgress(data);
        }
    },

// ... later on in the file ...

function updateProgress(data){
    console.log(data);
    if(JSON.parse(data.result).status === 'error'){
        data.context.addClass('error');
    }else{
        data.context.removeClass('working');
        $('#drop').fadeOut(function(){
            $('#drop').remove();
            if(debug === 0){window.location = 'http://datastorage.iquestria.net/images/'+data.files[0].name+'?v2';}
        });
    }
}
jfriend00

经过多番讨论,最终的问题data.result是只能在done回调中可靠地使用,而在progressOP试图访问它回调中则无法可靠地使用。


您的Ajax调用的结果只能在提供数据的回调中使用。您不能在其他任何地方使用它。这是因为回调是异步调用的,并且在函数的其余部分已经完成之后的某个时候结束。

有关更多详细信息,请参见此答案:如何从异步调用返回响应?


另外,如果您正确使用了jQuery的ajax调用,则您无需进行任何JSON解析,因为jQuery会为您完成所有这些工作。我不太清楚您得到的结果是什么,但是如果您为ajax调用指定正确的数据结果类型,则jQuery会自动为您解析它,而您不必JSON.parse()自己调用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript变量未定义但已定义

来自分类Dev

尽管已定义,但javascript变量未定义

来自分类Dev

已定义的未定义变量

来自分类Dev

Angular 2模板标签说对象未定义

来自分类Dev

Javascript对象的变量未定义

来自分类Dev

JS-未定义的对象(但该对象已定义)

来自分类Dev

PHP未定义变量错误,但已定义

来自分类Dev

变量未定义错误,即使已定义

来自分类Dev

接收错误:注意:未定义变量-但已定义

来自分类Dev

PHP私有变量是“未定义”,尽管已定义

来自分类Dev

注意:对已定义的变量使用未定义的常量

来自分类Dev

变量已定义但仍未定义错误

来自分类Dev

对象未定义,但似乎已定义动作

来自分类Dev

错误未定义对象(而它已定义)

来自分类Dev

对象变量未定义

来自分类Dev

Javascript ReferenceError:函数未定义,但已定义

来自分类Dev

JavaScript全局变量在函数内部变为未定义

来自分类Dev

类内部的JavaScript变量始终未定义

来自分类Dev

JavaScript全局变量在函数内部变为未定义

来自分类Dev

变量未定义-JavaScript

来自分类Dev

未定义 Javascript 变量

来自分类Dev

javascript对象未定义

来自分类Dev

未定义对象-Javascript

来自分类Dev

angularjs $ localStorage未定义,但已定义

来自分类Dev

访问未定义的属性-但已定义。

来自分类Dev

对已定义函数的未定义引用

来自分类Dev

对已定义方法的未定义引用

来自分类Dev

javascript变量是未定义的甚至定义?

来自分类Dev

Javascript“未定义”变量获取匹配的HTML对象