TypeError:data.forEach不是一个函数 [英] TypeError: data.forEach is not a function
问题描述
这是我的代码:
$.ajax({
url: "some_url/",
type: "GET",
dataType: "json",
success: function(data){
console.log(data);
data.forEach(function(element){
console.log(element);
});
}
});
我得到一个错误,即每个变量均不适用于data
变量.但是,当我将data
登录到控制台时,我得到
I get the error that for each does not work on the data
variable. However, when I log data
to the console, I get
[{"model": "app.mdl", "pk": 1, "fields": {"name": "test", "rank": 1}}]
这显然是一个数组,并且是可迭代的,所以我不明白到底是什么错误.
This is clearly an array and iterable, so I don't get what exactly is wrong.
data
是通过Django中的JsonResponse
返回的.
data
is returned via JsonResponse
in Django.
推荐答案
我相信 data 是JSON字符串.由于forEach()
是数组函数,并且您尝试在JSON字符串上实现它,因此会引发错误:
I believe data is a JSON string. Since forEach()
is a array function and you are trying to implement it on the JSON string it throws the error:
未捕获的TypeError:data.forEach不是函数"
"Uncaught TypeError: data.forEach is not a function"
您必须使用 JSON.parse()
,然后再使用forEach()
:
JSON.parse()
方法解析一个JSON字符串,构造该字符串描述的JavaScript值或对象.可以提供一个可选的reviver函数,以在返回结果对象之前对其进行转换.
The
JSON.parse()
method parses a JSON string, constructing the JavaScript value or object described by the string. An optional reviver function can be provided to perform a transformation on the resulting object before it is returned.
data = JSON.parse(data);
演示:
var data = JSON.stringify([{"model": "app.mdl", "pk": 1, "fields": {"name": "test", "rank": 1}}]);
data = JSON.parse(data);
data.forEach(function(element){
console.log(element);
});
因此成功应该是:
success: function(data){
data = JSON.parse(data);
console.log(data);
data.forEach(function(element){
console.log(element);
});
}
这篇关于TypeError:data.forEach不是一个函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!