检查传递的url是否是应用程序页面的一部分

时间:2015-11-30 06:35:08

标签: c# jquery asp.net vb.net relative-url

我需要帮助。例如,我有3个页面(Page1.aspx,Page2.aspx,Page3.aspx),我还有一个模态弹出窗口,用户输入一个URL。现在,我想测试输入的url是否是我拥有的应用程序的一部分。

到目前为止我所做的是使用Uri.TryCreate(url, UriKind.Absolute, out uriResult)方法,但它似乎不符合要求,因为当用户通过google.com时它不起作用,它将其视为相对网址,而不是绝对网址。

以下是我测试的一些网址及其各自的结果:

1 个答案:

答案 0 :(得分:0)

我想测试输入的网址是否是我拥有的应用程序的一部分。

为此,您可以使用location可用对象的window

function TryCreate(url) {
  if (url == window.location.host) {
    return "relative";
  } else if (url.split('?')[0] == window.location.host && url.slice(url.indexOf('?')) == window.location.search) {
    return "relative";
  } else {
    return "absolute";
  }
}

document.querySelector('button').addEventListener('click', function(e) {
  document.querySelector('pre').textContent = document.querySelector('input[type="text"]').value + ":" + TryCreate(document.querySelector('input[type="text"]').value);
}, false);
<input type='text'>
<button>check url</button>
<pre></pre>


<sub>due to some restriction you should add this url "stacksnippets.net"</sub>