You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过JS调用Wikipedia API获取随机文章摘要?

解决维基百科API随机摘要获取问题

你的代码存在几个问题,导致alert没有预期结果:

  1. 变量作用域问题:myJson是userAction函数内部的局部变量,如果在函数外部调用alert(myJson)会直接报错,因为外部访问不到这个变量。
  2. 未执行函数:你定义了userAction但没有调用它,函数里的请求逻辑根本没触发。
  3. alert打印对象的局限性:即使在函数内部alertmyJson,也只会显示[object Object],因为alert无法直接展示对象结构,需要转成可读格式。
  4. 缺少错误处理: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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:50:31