在JavaScript中确定URL是否属于当前域的最佳方法是什么?

问题描述 投票:0回答:1

我有一个URL。它可能是相对的(例如,不是以https://等开头),也可能不是相对的(以https://等开头)。

如何确定此URL是否与window.location指向相同的域?

((我正在创建XMLHttpRequest并向其中添加一个cookie。仅当我请求的URL与我所在的URL相同时,才能添加该cookie。这是一个秘密cookie。)

javascript url
1个回答
0
投票

使用正则表达式测试您的网址部分。


0
投票

最简单的方法实际上是利用DOM:将URL插入<a>标记时,浏览器实际上将解析该URL,以便当您使用JS检索元素的href属性时,它将返回一个绝对路径。

然后,您可以简单地检查所解析的路径是否包含window.location.origin

function doesUrlBelongsToCurrentDomain(url) {
  const link = document.createElement('a');
  link.href = url;
  
  return link.href.includes(window.location.origin);
}

console.log(doesUrlBelongsToCurrentDomain('http://google.com'));
console.log(doesUrlBelongsToCurrentDomain('./relative-link'));
© www.soinside.com 2019 - 2024. All rights reserved.