Parsoid 0.9.0更新在Mediawiki 1.30上的VisualEditor REL_30中带来406 Not Acceptable docserver错误

今天在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//真;

这并不好看,但现在它解决了我的问题。