今天在REL_30上用VisualEditor编辑页面时,我的一些mediawiki实例出现了问题,导致与Parsoid相关的HTTP 416错误。
奇怪的是,只有在编辑现有页面时才会出现此错误,以下简称为curl:
卷曲“http://NAME_OF_WIKI_HERE/api.php?action=visualeditor&format=json&paction=parse&page=Main_page&uselang=en"
{“错误”:{“代码”:“apierror-visualeditor-docserver-http”,“信息”:“http 406”,“*”:“请参阅http://NAME_OF_WIKI_HERE/api.php用于API使用。订阅mediawiki-api公告邮件列表,网址为<;https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-annouss> 获取API弃用和中断更改的通知。"}}%
过了一会儿,我发现parsoid在那里宣布了行为github代表:
此版本要求客户端(VE等)在头中返回1.6.0及更高版本的HTML字符串。如果没有,Parsoid将返回HTTP 406。可以通过将VE(或相关客户端)更新到更新的版本来解决此问题。
不幸的是,我使用了他们的.deb存储库releases.wikipedia.org,它没有提供0.8.0包来恢复更新。因为我已经更新了,所以在apt中将其标记为暂挂不再是一个选项。
在阅读了一些源代码之后,我找到了解决方案,直到下一个mediawiki稳定版本到来,然后可以编辑
lib/config/ParsoidConfig.js
并切换此线路:
ParsoidConfig.prototype.strictAcceptCheck=true;
到那个
ParsoidConfig.prototype.strictAcceptCheck=false//真;
这并不好看,但现在它解决了我的问题。