coolpace / V2EX_Polish

专业的 V2EX 浏览器扩展,集合了众多实用功能,重塑你的浏览体验!
https://v2p.app
905 stars 35 forks source link

CDN二级域名跨域,导致预加载多页回复失败 #76

Closed gricn closed 7 months ago

gricn commented 7 months ago

今天在访问v2ex过程中,也遇到了 #47 所描述预加载多页失败。通过分析发现是由于CORS所致。

分析过程

首先,v2ex有众多二级域名,最常见的如www, global, hk, cn等。正如Livid在该回复谈及:

V2EX二级域名是用来测试不同的 CDN 的域名。

而目前上述4个二级域名均被该插件支持。

其次,由于用户访问IP差异,如打开某热门回答,会进入hk二级域名。如:https://hk.v2ex.com/t/1029673?p=1. 但在预加载多页过程中,由于代码层默认访问的是Origin是V2EX.Origin,也就是https://www.v2ex.com,所以会请求访问https://www.v2ex.com/t/1029673?p=2. 此时由于域名不同,不符合CORS原则,且v2ex站点服务器端没有设置Access-Control-Allow-Origin,将导致预加载失败。

解决思路

V2EX.Origin修改成window.location.origin

gricn commented 7 months ago

#78 已发pr,在本地Chrome测试已修复问题

Codennnn commented 7 months ago

感谢你的贡献,该问题已被改善~