Javascript window.location.href 如果应用程序托管在 IIS 上则无法运行

Javascript window.location.href not working if application is hosted on IIS

我对 javascript window.location.href 函数有疑问。 在开发服务器(Windows server 2008 with IIS)上,我们在 "default web site" 中部署了一个名为 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" 名称进行硬编码,但这不是我们想要的,因为我们不想在每次部署到生产服务器时都牢记这一点。

试试这个:

location.replace(yourUrl);

我找到了解决方案,它非常简单(很遗憾我没有想到这一点!)。

所以,显然,如果我键入 window.location.href= "/MyPage.aspx?id="+item.value;,服务器会将我重定向到生产服务器,但如果我键入 window.location.href= "./MyPage.aspx?id="+item.value;,它会将我带到正确的页面。