如何解决“无法读取未定义的属性'forEach'”错误

时间:2020-08-30 06:15:25

标签: javascript arrays json ajax api

我正在尝试从json读取所有值,但是我收到此错误:

TypeError: Cannot read property 'forEach' of undefined

我做错了什么?

fetch(url, {
            method: 'POST',
            headers: {
                "user-key": 'mykey'
            },
            body:               
                'fields id, name, cover.url; where id = 1942;'
        })
            .then(response => response.json())          
            .then((data) => {
                data.array.forEach(element => {
                    console.log(element)
                });
            })
            .catch((error) => console.log(error))

3 个答案:

答案 0 :(得分:2)

如何解决“无法读取未定义的属性'forEach'”错误

您找到了调用forEach的位置(由于错误消息包含文件名和行号,很容易找到,因此应该很容易找到它),然后确保无论您身在何处在实际上作为forEach属性的对象上调用forEach;大概是Array

答案 1 :(得分:1)

json响应的组织方式可能与您想象的不同。如果发布成功,则很可能返回您在发布请求中发送的对象。这意味着您不能直接在其上使用forEach函数,而只能在其键或值上使用它。

答案 2 :(得分:0)

错误说明了一切。您正在尝试对未定义的值使用ForEach。 您没有按照要求从后端接收数据。 数据必须具有特定的数据结构,才能在其上使用.forEach。

检查所接收的是否为数组。

例如:-

console.log(typeof data.array);