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

调用Wikipedia API返回异常,无法获取目标JSON数据求助

解决维基百科API请求返回CORS响应但无法获取JSON数据的问题

看起来你碰到的是浏览器CORS机制下的响应解析问题——虽然状态码显示200(请求成功),但实际拿不到预期的JSON数据,我帮你一步步排查解决:

1. 先修正你的请求URL

从你给出的响应URL能看到两个明显问题:

  • 重复了format=json参数(URL里出现了两次)
  • 代码里的URL末尾有多余的...截断符号

正确的完整请求URL应该是这样的:

let link = `https://en.wikipedia.org/w/api.php?action=opensearch&search=google&limit=20&namespace=0&format=json&origin=*&utf8=`;

注意:每个参数只保留一次,去掉无效的截断符号...,避免URL格式错误导致API返回异常。

2. 正确处理Fetch响应的解析

即使请求状态是200,你需要显式调用response.json()来把响应体解析成JSON对象,而不是直接使用原始响应。完整的请求代码示例:

let link = `https://en.wikipedia.org/w/api.php?action=opensearch&search=google&limit=20&namespace=0&format=json&origin=*&utf8=`;

fetch(link)
  .then(response => {
    // 先确认请求真的成功
    if (!response.ok) {
      throw new Error(`请求失败: ${response.status}`);
    }
    // 解析响应为JSON格式
    return response.json();
  })
  .then(data => {
    // 这里就能拿到你需要的维基百科数据了
    console.log("获取到的搜索结果:", data);
  })
  .catch(error => {
    // 捕获所有错误,包括CORS、解析失败等
    console.error("请求出错:", error);
  });

3. 额外排查点

如果按照上面的步骤调整后还是有问题,打开浏览器的开发者工具(F12),切换到Console标签:

  • 查看是否有具体的JSON解析错误提示(比如返回内容格式无效)
  • 确认是否有CORS相关的警告(虽然维基API支持CORS,但参数错误也可能触发异常)

内容的提问来源于stack exchange,提问作者Zeyad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:55:18