🔍 问题定位
前段时间,Hexo-Circle-of-Friends 项目恢复了更新。我在将其升级至 v6.x.x 版本后,发现鱼塘朋友圈钓鱼功能出现了问题 ———— 原本可以正常显示的随机友链文章功能,升级后却报出 undefined 错误。
!!! danger 根本原因 插件更新导致 /randompost 接口返回的 JSON 结构发生变化。 !!!
提示这是提示内容
接口变化
更新前(对象格式):
JSON
{
"title": "文章标题",
"link": "https://example.com",
"author": "作者"
}
更新后(数组格式):
JSON
[
{
"title": "文章标题",
"link": "https://example.com",
"author": "作者"
}
]
由于前端代码没有及时适配,仍然直接访问 json.title,结果自然得到了 undefined。
🔧 解决方案
要修复这个问题,只需修改相关代码,确保正确处理接口返回的数据。
修改位置
文件:themes/anzhiyu/source/js/anzhiyu/random_friends_post.js
行数:约第 157 行
修改对比
:::tabs
== tab 修改前
JAVASCRIPT
fetch(fetchUrl)
.then(res => res.json())
.then(json => {
var title = json.title;
var link = json.link;
var author = json.author;
});
== tab 修改后
JAVASCRIPT
fetch(fetchUrl)
.then(res => res.json())
.then(json => {
var title = json[0].title;
var link = json[0].link;
var author = json[0].author;
});
:::
📝 总结
这次问题的本质是没有关注文档更新变化。
Hexo-Circle-of-Friends 在新版本中调整了接口返回方式,由对象变为数组。前端若依旧按旧逻辑处理,自然会遇到 undefined 的情况。
!!! tip 建议 升级插件时,务必查看官方文档的更新说明,及时适配前端代码。 !!!
本文是原创文章,采用 CC BY-NC-SA 4.0 协议,完整转载请注明来自 Elykia
评论
隐私政策
0/500
滚动到此处加载评论...


