获取javascript中用于重定向的根网站url

获取javascript中用于重定向的根网站url,javascript,asp.net,window.location,Javascript,Asp.net,Window.location,我想在会话超时后从我网站的每个页面重定向到登录页面。 我尝试将window.location设置为登录页面: var ParentUrl = encodeURIComponent(window.parent.location.href); document.location.href = "~/Login.appx?ReturnUrl=" + ParentUrl; 但是“~”似乎不受支持。 我的登录页面位于我的根文件夹下 例如: *http://server/website/*Login.as

我想在会话超时后从我网站的每个页面重定向到登录页面。 我尝试将window.location设置为登录页面:

var ParentUrl = encodeURIComponent(window.parent.location.href);
document.location.href = "~/Login.appx?ReturnUrl=" + ParentUrl;
但是“~”似乎不受支持。 我的登录页面位于我的根文件夹下

例如: *http://server/website/*Login.aspx

如何在javascript中获取此url

非常感谢


Inbal.

为什么要使用~?乍一看,我会说移除它可以解决你的问题。像这样

   document.location.href = "/Login.appx?ReturnUrl=" + ParentUrl;
[编辑]回应第一条评论

我相信这可以做到:

function getLoginPage() {
    var urlParts = document.location.href.split("/");
    return "/" + urlParts[2] + "/" + urlParts[3] + "/Login.aspx";
}

document.location.href = getLoginPage() + "?ReturnUrl=" + ParentUrl;
“/网站”部分通常是服务器端信息。JavaScript无法自行确定这一点

因此,您必须将其从服务器传递到客户端。你还是通过吧“http://server/website“那就马上

function getURL() { 
    var arr = window.location.href.split("/"); 
    delete arr[arr.length - 1]; 
    return arr.join("/"); 
}
您可以这样使用它:

document.location.href = getURL() + "Login.appx?ReturnUrl=";

我的函数和第一个答案之间的区别是“/”将重定向到服务器/页面,我的代码将重定向(在您的示例URL中)到服务器/网站/页面。

我将使用window.location.origin。它将为您返回第一部分,然后对父url进行Uri编码,就完成了

var parentUrl = encodeURIComponent(window.location.href),
    loginUrl = window.location.origin+"/Login.appx?ReturnUrl=" + parentUrl;

window.location.href = loginUrl;

跨浏览器功能的一个小提示是使用window.location。它可以在所有兼容的浏览器上读/写。虽然document.location在某些(ie)中是只读的。

此函数将返回当前URL的根(基)URL

你有这样的想法: 你想要:

此处的详细信息:

我通常创建一个“settings.js”文件,在其中存储应用程序的设置集合。在这种情况下:

settings={“root”:“myAppRoot/”/*,…*/}

然后在脚本中,例如,我调用


myDynamicDiv.load(“/”+settings.root+“urlPart1/urlPart2/app”
我修改了PerKristian的答案,以便它在我的情况下工作

function getBaseUrl() {
    var re = new RegExp(/^.*\/\/[^\/]+/);
    return re.exec(window.location.href);
}
匹配所有的东西直到第一个孤独/

比如说

http://stackoverflow.com/questions/14135479/get-root-website-url-in-javascript-for-redirect


将返回
http://stackoverflow.com

您的
窗口.parent.location.href的内容是什么?我尝试了…但是如果我的当前页面是例如:,那么我得到document.location.href=它实际上位于:谢谢!但是它的工作原理与第一个解决方案完全相同。如果我的当前页面是例如:server/website/pages/Page.aspx,所以我得到document.location.href=它实际上位于:啊,在这种情况下,你不能只使用Javascript。你需要使用服务器端语言,如C#或PHP来计算真实的URL。出于好奇,这是(
window.location.origin
)当您有一个href以“/”开头的锚定链接时,内部使用了什么?例如
function homepage_of(url) { 
    var arr = url.replace('//','@@').split("/");
    return arr[0].replace('@@','//');
}
function homepage_of(url) { 
    var arr = url.replace('//','@@').split("/");
    return arr[0].replace('@@','//');
}