如果用户输入没有架构的 URL,则会将其视为相对 URL,即
youtube.com
变为 https://some.domain.com/path/youtube.com
。将其传递给不带基数的 URL
构造函数是错误的。当然,如果您将其放入浏览器地址栏中,它仍然可以按预期工作。除了进行一些正则表达式匹配(这可能需要阅读整个 RFC 规范才能正确)之外,是否有一些类似于浏览器所做的“修复”这些 URL 的标准方法?
在网络浏览器中,当您输入没有方案的 URL 时,它们通常会假设您想要使用默认方案(通常是 http://)导航到该域。
- 当 URL 不以 http://、https:// 或其他可识别的方案(如 ftp://)开头时,您可以添加默认方案(通常为 http:// 或 https://)。 - 可以使用 JavaScript 中的 URL 构造函数以及基本 URL,以确保形成正确构造的 URL。 - 如果您需要根据基本 URL 解析相对 URL,您还可以通过提供基本 URL 来使用 URL 构造函数。
使用 URL 构造函数是处理 URL 的可靠方法,同时确保它们的格式正确,类似于 Web 浏览器管理它们的方式。如果 URL 不包含方案,则在前面添加默认方案。对于相对 URL,请提供基本 URL,它允许您正确构造绝对 URL。 快乐编码!