访问另一个文件时未定义 fetch

Posted

技术标签:

【中文标题】访问另一个文件时未定义 fetch【英文标题】:fetch is not defined when access another file 【发布时间】:2021-06-19 18:27:09 【问题描述】:

我正在尝试使用 fetch 访问其他文件中的数据,但它一直返回

ReferenceError: fetch is not defined
      const getData = async () => 
      const fetchedData = await fetch("./dino.json");
      const data = await fetchedData.json();
      return data.Dinos;
    ;
    getData().then(data => 
      console.log(data); // will print the array
    ).catch(error => 
      console.error(error);
    );

我正在查看这个fetch API,但它没有说明我们是否需要安装任何东西

【问题讨论】:

这能回答你的问题吗? ReferenceError: fetch is not defined 【参考方案1】:

您可能正在使用node,其中fetch 未定义,它仅在默认情况下在浏览器中可用。您可以将其安装为npm 包node-fetch。

【讨论】:

【参考方案2】:

正如 Marcos 所说,如果您使用的是node,则 fetch 方法将不可用。而要使用它,你需要安装“node-fetch”包,然后导入使用它。

使用“node-fetch”后,您会收到另一个错误" Only absolute URLs are supported",要解决此问题,您需要提供文件的完整 URL。

示例代码如下:

import fetch from 'node-fetch' 

const getData = async () => 
      const fetchedData = await fetch("http://localhost:3000/dino.json");
      const data = await fetchedData.json();
      return data.Dinos;
    ;

【讨论】:

以上是关于访问另一个文件时未定义 fetch的主要内容,如果未能解决你的问题,请参考以下文章

安装 mysqlnd 时未定义 MySQLi get_result()

获取 RSS 提要时未定义

调用内联函数时未定义的引用

Laravel 8:将刀片加载到另一个刀片时未定义的变量

CoreData:第一次加载 NSManagedObject 时未访问自定义属性访问器

用于获取数据的自定义反应钩子在第二次点击时未提供数据