使用obsidian已经蛮长时间了,今天刷twitter的时候,有人推荐了一个chrome拓展,https://chrome.google.com/webstore/detail/obsidian-web/edoacekkjanmingkbkgjndndibhkegad, 可以配合obsidian的api插件使用。
然后我在配置妥当之后,一直遇到一个神奇错误。
Could not connect to Obsidian! Make sure Obsidian is running and that the Obsidian Local REST API plugin is enabled.
而在插件配置里,已经是一个可爱的绿色小盾牌了。
于是有了在页面里,(目标页面里),devtool查看。发现神奇错误
Cross-Origin Resource Sharing error: PreflightMissingAllowPrivateNetwork
直接查询,不太能说是无果,只能说不太有果。
https://chromedevtools.github.io/devtools-protocol/tot/Network/#:~:text=PreflightMissingAllowPrivateNetwork 。
devtool的错误码并未详细解释;
https://developer.chrome.com/blog/private-network-access-update/
一篇无限delay的博文
配合gpt的回答结果
猜测这是一个实验中的特性。
于是联想到最近一直在日小米的温湿度计2,https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html , repo https://github.com/pvvx/ATC_MiThermometer , 明确有提到 #enable-experimental-web-platform-features 这个flag,于是关闭。
解决。
所以这玩意,不是experimental, 是delayed features 。
这个问题的原因,其实是多样的。
首先,是多年来,chrome积攒的新feature,存留的有争议的feature,各种break change,已经堆积如山。特别是在当前的经济环境下,engineer流动加剧,Google很难有余力在继续给马桶冲水。所以也正如很多人的悲观观点,处于屎山风口浪尖里的chrome正在成为下一个IE。
其次,obsidian web插件的js实例,是通过directly inject到目标的webpage中的。既不是userscript类技术的高权限脚本,也不是chrome插件原生的权限,有点土法匠心的味道了。