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

本地运行Parsoid-JSAPI仍调用公共API,指定localhost报错求助

本地用Parsoid-JSAPI解析维基文本完全可行,你遇到的问题是配置没到位

首先肯定你的方案是对的——本地部署Parsoid后用JSAPI解析维基文本完全没问题,你碰到的错误是因为Parsoid-JSAPI默认不知道怎么映射localhost这个域名到你的本地服务,得手动给它指明白。

下面给你一步步解决的办法:

1. 直接在parse调用里指定本地Parsoid的API端点

你之前只传了domain: 'localhost',但JSAPI不知道这个域名对应的API地址是啥,所以报错。解决办法是在参数里加上apiURL,直接指向你本地Parsoid的REST API接口:

Parsoid.parse("你的维基文本内容", {
  apiURL: 'http://localhost:8000/api/rest_v1/page/html/',
  domain: 'localhost'
})
.then(html => {
  console.log('解析后的HTML:', html);
})
.catch(err => {
  console.error('解析出错:', err);
});

注意:如果你的本地Parsoid服务器不是用默认的8000端口,记得把URL里的端口改成你自己的。

2. 确保本地Parsoid服务器的配置正确

接下来要检查你本地Parsoid的localSettings.js配置文件,得让它能识别localhost这个wiki,并且允许跨域请求(如果你的JS代码是在浏览器里跑的话)。举个基础配置例子:

module.exports = {
  // 配置你的本地wiki映射
  wikis: {
    "localhost": {
      domain: "localhost",
      // 如果你没有本地部署MediaWiki,只是纯解析维基文本,可以把apiURI设为占位或配置Parsoid不依赖外部API
      apiURI: "http://localhost:8000/w/api.php", 
      defaultWiki: "localhost"
    }
  },
  // Parsoid服务器监听的端口,要和上面apiURL里的一致
  serverPort: 8000,
  // 允许跨域请求,方便前端调试
  allowCORS: ['*']
};

如果你的场景只是解析不含复杂模板、外部资源的纯维基文本,还可以简化配置,比如关闭对MediaWiki API的依赖;但如果要处理带模板、引用的内容,还是需要搭配本地MediaWiki实例使用。

3. 理解Parsoid-JSAPI的默认逻辑

Parsoid-JSAPI原本是为对接Wikimedia的公共服务设计的,所以它内置了维基百科等域名的API映射,但localhost不在默认列表里,所以必须手动告诉它对应的API地址,不然就会出现你碰到的"No API URI available"错误。

总结一下:你的本地解析方案完全可行,核心就是给JSAPI明确指定本地Parsoid的API地址,同时确保Parsoid服务器本身的配置能正确响应你的请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:22:27