如何通过JS调用Wikipedia API获取随机文章摘要?
解决维基百科API随机摘要获取问题
你的代码存在几个问题,导致alert没有预期结果:
- 变量作用域问题:
myJson是userAction函数内部的局部变量,如果在函数外部调用alert(myJson)会直接报错,因为外部访问不到这个变量。 - 未执行函数:你定义了
userAction但没有调用它,函数里的请求逻辑根本没触发。 - alert打印对象的局限性:即使在函数内部alert
myJson,也只会显示[object Object],因为alert无法直接展示对象结构,需要转成可读格式。 - 缺少错误处理:fetch请求遇到HTTP错误(比如500、404)不会自动抛出异常,需要手动判断处理。
修正后的代码如下:
const userAction = async () => { try { const response = await fetch('https://en.wikipedia.org/api/rest_v1/page/random/summary'); // 检查请求是否成功 if (!response.ok) { throw new Error(`请求失败,状态码:${response.status}`); } const myJson = await response.json(); // 方式1:打印完整返回对象(转成格式化JSON字符串) alert(JSON.stringify(myJson, null, 2)); // 方式2:直接提取你需要的字段(适合mad lib游戏的核心内容) // alert(`标题:${myJson.title}\n摘要:${myJson.extract}`); } catch (error) { alert(`出错了:${error.message}`); } }; // 必须调用函数才会执行请求 userAction();
关键说明
- 调用
userAction()是核心,否则请求逻辑不会运行 - 用
try/catch捕获异步过程中的所有错误,包括网络问题和HTTP错误 - 维基百科API返回的核心字段:
title是文章标题,extract是文章摘要内容,这两个是你做mad lib游戏最需要的 JSON.stringify(myJson, null, 2)可以把对象转成带缩进的字符串,方便你查看返回的完整数据结构
内容的提问来源于stack exchange,提问作者MichaelDors
相关产品推荐
相关产品推荐

