推文详情

@Candinya@nya.one

@alikia@social.a2x.pub

@Candinya@nya.one

@alikia@social.a2x.pub
@Candinya@nya.one 主要逻辑就是这样,但是new URL()并不会检测host的TLD是否合法,于是就加上了相关逻辑
但是在检测TLD是否合法的时候……直接使用了类似host.split(".")的语句拆分出tld,但是忘记考虑了host压根没有dot的情况,于是一个单纯的weather由于没有dot被看作是host的tld部分送入validTLD函数检测,而此时恰好weather是一个合法TLD,就最终返回了true

@Candinya@nya.one

@alikia@social.a2x.pub
@Candinya@nya.one 因为浏览器就是这么做的,咱只是尽可能复刻出一样的功能
确实要维护tld列表,所以我在想干脆单独搞一个npm包出来定期更新得了。
主流浏览器也整天更新,有新的tld他们肯定也会随着更新加进去,这个寒寒赌一波,绝对也是硬编码到源码的:nachoneko_10:

@Candinya@nya.one
@alikia@social.a2x.pub 坏消息:浏览器能访问非 TLD 的(比如内网服务),它们只管合规的 URL 就交给 DNS 去解析,解析不出来的才会报错 :shizuku_oh: