Javascript 无法获取JSON响应的项

Javascript 无法获取JSON响应的项,javascript,json,ajax,object,vue.js,Javascript,Json,Ajax,Object,Vue.js,我正在尝试创建一个AJAX调用,我想处理响应 这是我在浏览器的网络控制台中看到的响应: { "message": "success", "file": "dump.xml" } 这就是我想做的: onComplete: function onComplete(data) { var vm = this; console.log(data.file); this.$set('uplo

我正在尝试创建一个AJAX调用,我想处理响应

这是我在浏览器的网络控制台中看到的响应:

{
    "message": "success",
    "file": "dump.xml"
}
这就是我想做的:

onComplete: function onComplete(data) {             
            var vm = this;
            console.log(data.file);
            this.$set('upload', data);
            this.$set('filename', file);

            this.modal.show();
        }
好的。嗯-我得到了一个响应,如果我将
数据
写入console.log,我会得到以下结果:

{"message":"success","file":"dump.xml"}
但如果我尝试这样做:

console.log(data.file);

我变得不确定了。但是为什么呢?

很可能您的
数据将是一个
JSON
字符串。您已经将其解析为如下所示的
对象

onComplete: function onComplete(data) {
        data = JSON.parse(data)
        var vm = this;
        console.log(data.file);
        this.$set('upload', data);
        this.$set('filename', file);

        this.modal.show();
    }

您正在将其作为字符串接收。您必须首先通过以下方式将其解析为JSON:

data = JSON.parse(data);
console.log( data.file )

其他选项:或者您可以根据请求定义它,添加
数据类型:“json”
,以便接收json

比如:


我认为问题在于,
data
是一个JSON字符串,因此它将在控制台中打印,但当您调用
data.file
时,它将是
未定义的
。因为
字符串
没有
文件
属性

在访问
文件
属性之前,您需要解析
数据
对象:

data = JSON.parse(data);
console.log(data.file);

您需要首先解析它,然后调用
.file
。在代码中打印数据和data.file的位置?您使用什么来发出ajax请求?框架通常有一个选项,让它为您将响应解析为JSON。我必须告诉框架将响应解析为JSON。谢谢如果使用相同的变量名,则不需要新的
var
,可能存在重复。可能在严格模式下中断
data = JSON.parse(data);
console.log(data.file);