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

调用Mediawiki API发送POST请求无法获取正确JSON格式响应

问题根因
  • MediaWiki 原生API默认不支持application/json格式的请求体传参,仅能识别 GET 请求的URL查询参数、POST请求的application/x-www-form-urlencoded格式表单参数。你提交的JSON格式参数无法被API解析,服务端判定未收到有效请求参数,因此直接返回了默认的HTML格式API帮助文档。
  • purge接口属于会触发站点数据变更的操作,MediaWiki默认限制该接口仅允许POST请求调用,因此使用GET请求传参时,服务端能识别到参数但会直接返回需使用POST请求的错误提示,属于接口的正常安全限制。
解决方案

优先使用原生API支持的表单格式提交POST请求,无需修改服务端配置,兼容性最高,代码示例如下:

var xhr = new XMLHttpRequest();
var url = "/wiki4/api.php";
// 构造URL编码的表单参数
var params = new URLSearchParams();
params.append('action', 'purge');
params.append('titles', title);
params.append('format', 'json');

xhr.open('POST', url, true);
// 设置正确的请求头类型
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
xhr.send(params);

如果你的站点已安装支持JSON请求体解析的MediaWiki扩展,也可以保留JSON提交逻辑,无需调整代码。

补充说明:若调整参数格式后返回权限错误,需额外请求action=query&meta=tokens&type=csrf接口获取CSRF令牌,将token参数加入请求参数中即可正常调用。


内容的提问来源于stack exchange,提问作者Nobody-Knows-I-am-a-Dog

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:15:04