我对javascript window.location.href
函数有疑问。
在开发服务器(带有IIS的Windows Server 2008)上,我们在名为Topics2的“默认网站”中部署了一个asp.net应用程序(它是一个测试应用程序 - 生产一个是主题)。
我的问题是:
当我想使用javascript window.location.href
导航到另一个页面时,浏览器会将我重定向到生产页面而不是测试页面。
示例:不是将我带到server/Topics2/MyPage.aspx?id=100
,而是将我带到server/MyPage.aspx?id=100
(主题名称未显示)。
应用程序中没有进行路由。 IIS是否添加了一些默认路由?或者在IIS中是否有任何路由(我不知道)正在弄乱这个?
我现在直到尝试的东西:
1. window.location.href = window.location.protocol + "//" + window.location.host + "/MyPage.aspx?id=" + item.value;
2. window.location.href= "/MyPage.aspx?id="+item.value;
我知道我总是可以对“Topics2”这个名称进行硬编码,但这并不是我们想要的,因为我们不希望每次部署到生产服务器时都记住这一点。
答案 0 :(得分:1)
我找到了解决方案,这非常简单(对我来说很遗憾,我没想到这个!)。
所以,显然如果我输入window.location.href= "/MyPage.aspx?id="+item.value;
,服务器会将我重定向到生产服务器,但如果我输入window.location.href= "./MyPage.aspx?id="+item.value;
,则会将我带到正确的页面。
答案 1 :(得分:0)
尝试使用:
location.replace(yourUrl);