首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JS - ReferenceError: fetch未定义

JS - ReferenceError: fetch未定义
EN

Stack Overflow用户
提问于 2020-11-17 11:34:16
回答 1查看 16.6K关注 0票数 1

我试图使用javascript从sochain块链api中获取数据,但是当我运行代码时,会得到以下错误:

代码语言:javascript
运行
复制
ReferenceError: fetch is not defined
    at Object.<anonymous> (/workspace/Main.js:1:12)
    at Module._compile (internal/modules/cjs/loader.js:1137:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
    at Module.load (internal/modules/cjs/loader.js:985:32)
    at Function.Module._load (internal/modules/cjs/loader.js:878:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
    at internal/main/run_main_module.js:17:47

那么,我的问题是,我做错了什么,为什么fetch会出现这个错误?我的代码是:

代码语言:javascript
运行
复制
var json = fetch('https://sochain.com/api/v2/address/LTC/LMSuo8W7CiXs8oFs1sJh77AQ54tCZM42Ay');
var obj = JSON.parse(json);
document.write(obj["data"]["received_value"]);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-17 11:37:28

您正在Paiza.io中的Node实例上运行它。请使用CodeSandboxCodePen运行您的代码。而这里..。Paiza运行在Node JS上,而不是在浏览器上

在您的示例中,您需要以这种方式使用fetch()

代码语言:javascript
运行
复制
fetch(
  "https://sochain.com/api/v2/address/LTC/LMSuo8W7CiXs8oFs1sJh77AQ54tCZM42Ay"
)
  .then((res) => res.json())
  .then((obj) => document.write(obj["data"]["received_value"]));

下面是代码沙箱:令人兴奋的-巴斯卡拉-斯奎夫

fetch() API是在主要浏览器中实现的一个浏览器API。如果您计划在Node运行时中使用相同的代码,那么您必须使用第三方获取库(如node-fetch )。

安装node-fetch

代码语言:javascript
运行
复制
npm install node-fetch

然后将其包含在代码中。

代码语言:javascript
运行
复制
const fetch = require('node-fetch');

如果您试图访问纯文本,请使用:

代码语言:javascript
运行
复制
fetch('https://example.com/')
    .then(res => res.text())
    .then(body => console.log(body));

如果您正在使用JSON (您的解决方案在这里),那么使用:

代码语言:javascript
运行
复制
fetch('https://sochain.com/api/v2/address/LTC/LMSuo8W7CiXs8oFs1sJh77AQ54tCZM42Ay')
    .then(res => res.json())
    .then(json => console.log(json));

另一种选择是阿西克斯,它是一个面向浏览器和node.js的基于承诺的HTTP客户端。您有一个非常棒的Axios备忘单可供通用。

安装axios

代码语言:javascript
运行
复制
npm install axios

然后将其包含在代码中。

代码语言:javascript
运行
复制
const axios = require('axios');

就你的情况而言,你可以:

代码语言:javascript
运行
复制
axios.get('https://sochain.com/api/v2/address/LTC/LMSuo8W7CiXs8oFs1sJh77AQ54tCZM42Ay')
  .then(function (response) {
    console.log(response);
  });
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64874484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档