根据主机,Javascript相对URL的解析方式不同

时间:2010-09-15 18:17:53

标签: javascript iis

我使用javascript得到了一个奇怪的行为我无法理解:我的应用程序的javascript相对URL正在以不同方式解析,具体取决于应用程序的托管位置:
a) my计算机的IIS 5.1(Windows XP)或 b)我的主机提供商(我几乎肯定会运行Windows Server 2003)。

行为1 (正常的?) - 在我的计算机的IIS上托管应用程序

如果浏览器的当前位置为http://localhost/appvirtualdir/Newsletter/List 然后我跑

window.location = "../Newsletter/List" 
在Firebug的控制台中,浏览器被重定向到http://localhost/appvirtualdir/Newsletter/List(保留在同一页面上)。

行为2 (奇怪的一个) - 应用程序托管的应用程序:

如果浏览器的当前位置为http://my.domain.com/appvirtualdir/Newsletter/List 我在Firebug的控制台中运行完全相同的脚本,浏览器被重定向到http://my.domain.com/appvdir/Newsletter/Newsletter/List,显然不存在。

所以,问题是:为什么,在第二种情况下,javascript不是“向上移动树”?

谢谢!

1 个答案:

答案 0 :(得分:1)

您确定自己在网址http://my.domain.com/appvirtualdir/Newsletter/List上而未使用http://my.domain.com/appvirtualdir/Newsletter/List/(请注意尾随斜杠)吗?

服务器可能认为它是一个目录(您可以通过这种或那种方式重定向到http://my.domain.com/appvirtualdir/Newsletter/List/,这是可能的,因为当文件/List时,只会忽略尾随/appvirtualdir/NewsletterList)中找到,在这种情况下,客户端的浏览器认为您在目录{{1}}中。