Javascript 无法获取JSON响应的项
我正在尝试创建一个AJAX调用,我想处理响应 这是我在浏览器的网络控制台中看到的响应: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
{
"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);