Javascript相对URL的解析方式因主机而异

Javascript相对URL的解析方式因主机而异,javascript,iis,Javascript,Iis,我无法理解javascript的一个奇怪行为:我的应用程序的javascript相对URL的解析方式不同,这取决于应用程序的托管位置:a)我的计算机的IIS 5.1(Windows XP)或b)我的主机提供程序(我几乎可以肯定它运行的是Windows Server 2003) 行为1(正常的?)-应用程序托管在我的计算机的IIS上 如果浏览器的当前位置为 我跑 window.location=“../Newsletter/List”在Firebug的控制台内,浏览器被重定向到(保持在同一页面上)

我无法理解javascript的一个奇怪行为:我的应用程序的javascript相对URL的解析方式不同,这取决于应用程序的托管位置:
a)我的计算机的IIS 5.1(Windows XP)或
b)我的主机提供程序(我几乎可以肯定它运行的是Windows Server 2003)

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

如果浏览器的当前位置为 我跑 window.location=“../Newsletter/List”在Firebug的控制台内,浏览器被重定向到(保持在同一页面上)

行为2(奇怪的一个)-应用程序托管在提供商上:

如果浏览器的当前位置为 我在Firebug的控制台中运行完全相同的脚本,浏览器被重定向到,这显然是不存在的

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


谢谢

你确定你在URL
http://my.domain.com/appvirtualdir/Newsletter/List
且不使用
http://my.domain.com/appvirtualdir/Newsletter/List/
(注意后面的斜杠)


服务器可能认为它是一个目录(您被重定向到
http://my.domain.com/appvirtualdir/Newsletter/List/
,一种或另一种方式,这是可能的,因为当在
/appvirtualdir/Newsletter
中找到文件
列表时,后面的
/
将被忽略在这种情况下,客户端的浏览器认为您在目录
列表中

您确定您在URL上吗http://my.domain.com/appvirtualdir/Newsletter/List
且不使用
http://my.domain.com/appvirtualdir/Newsletter/List/
(注意后面的斜杠)


服务器可能认为它是一个目录(您被重定向到
http://my.domain.com/appvirtualdir/Newsletter/List/
,一种或另一种方式,这是可能的,因为当在
/appvirtualdir/Newsletter
中找到文件
列表时,后面的
/
将被忽略如果客户端的浏览器认为你在目录
列表中

你是对的,我没有注意到我被重定向了。对于像我这样心烦意乱的程序员来说,这是一个教训:-)因为一台服务器放置了尾随斜杠,而另一台没有,所以我现在使用一个全局javascript变量设置为app root path。非常感谢。你说得对,我没有注意到我被重定向了。对于像我这样心烦意乱的程序员来说,这是一个教训:-)因为一台服务器放置了尾随斜杠,而另一台没有,所以我现在使用一个全局javascript变量设置为app root path。非常感谢。 window.location = "../Newsletter/List"