data.forEach不是一个函数

时间:2016-04-25 20:50:21

标签: javascript jquery

这是我的json

[
"59191", "TypeAV - Canada", "Available", 
"422129", "TypeAA - Italy", "Available", 
"959191", "TypeBB - USA", "N/A", 
"6D968C", "TypeAV - Canada", "Available"
]

和js

$.ajax({url: 'test.json'}).done(function(data) {
  $.each(myArr, function () {
    data.forEach(function (line) {
       //do something
    });
  })
})

我得到Uncaught TypeError: data.forEach is not a function。如何解决这个问题?

1 个答案:

答案 0 :(得分:6)

df.freq <- addmargins(table(df), margin = 2) df.freq <- subset(df.freq, 'Sum' > 67, select = -Sum) df.max <- apply(df.freq, 1, function(x) { names(x)[which(x == max(x))] }) df.max <- unique(as.numeric(df.max)) subset(df, location %in% df.max) 显然不是数组。如果服务器发送data$.ajax将自动将响应解析为JSON,但它不能这样做。由于jQuery不知道响应应该被解析为JSON,它只是将字符串响应传递给回调函数。

所以你需要告诉JQuery它是JSON并且需要被解析。最简单的方法是使用Content-type: application/json代替$.getJSON,因为您没有将任何复杂的选项传递给$.ajax

$.ajax

您还可以使用{$ 1}}选项来添加$ .ajax。

$.getJSON('test.json', function(data) {
    ...
});