FeedEk无法加载WordPress博客Feed问题排查求助
问题排查与解决方法
核心原因分析
你的主站和博客属于不同子域名,加载feed失败大概率是以下几个原因:
跨域访问限制(CORS)
浏览器的同源策略会阻止主站(colonialstock.com)请求子域名(blog.colonialstock.com)的资源,而公共feed的服务器配置了允许所有域名访问,所以能正常加载。你可以打开浏览器控制台(F12)查看Network标签,看feed请求是否有Access-Control-Allow-Origin相关的报错。Feed格式不兼容
FeedEk可能对RSS/Atom格式细节有要求,你的博客feed格式(比如Atom)可能和插件预期的RSS 2.0不匹配,而公共feed刚好符合插件兼容的格式。直接访问你的feed地址,看源代码开头是<rss>还是<feed>就能区分。服务器防盗链/UA限制
博客服务器可能拦截了非浏览器的请求UA,FeedEk用jQuery AJAX发起的请求UA可能被识别为非合法请求,导致返回空内容或403错误。
对应的解决办法
1. 解决CORS跨域问题
在博客站点的服务器配置里添加CORS规则:
- 如果是Apache服务器,修改
.htaccess文件:Header set Access-Control-Allow-Origin "https://www.colonialstock.com" Header set Access-Control-Allow-Methods "GET" - 如果是Nginx服务器,在站点配置中添加:
add_header Access-Control-Allow-Origin https://www.colonialstock.com; add_header Access-Control-Allow-Methods GET;
2. 适配Feed格式
- 尝试使用WordPress默认的RSS 2.0地址:
https://blog.colonialstock.com/feed/rss2/,替换原FeedUrl。 - 如果是Atom格式,需要修改FeedEk的代码,适配Atom节点的解析逻辑(比如将解析
<item>改为<entry>)。
3. 绕过UA限制
- 修改FeedEk的AJAX请求,添加合法的浏览器UA头:找到FeedEk.min.js中的AJAX请求部分,添加:
headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' } - 或者在博客服务器的防盗链设置中,允许主站域名的请求。
额外检查
虽然换公共feed能运行,但可以试试升级jQuery版本到3.x系列(注意兼容现有代码),老版本jQuery可能存在潜在的跨域请求问题。
内容的提问来源于stack exchange,提问作者Ramesh Kumar
相关产品推荐
相关产品推荐

