我有一个URL。它可能是相对的(例如,不是以https://等开头),也可能不是相对的(以https://等开头)。
如何确定此URL是否与window.location指向相同的域?
((我正在创建XMLHttpRequest并向其中添加一个cookie。仅当我请求的URL与我所在的URL相同时,才能添加该cookie。这是一个秘密cookie。)
使用正则表达式测试您的网址部分。
最简单的方法实际上是利用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'));