Javascript “的区别是什么?”/“urlString.html”;对;“urlString.html”;在什么地方?

Javascript “的区别是什么?”/“urlString.html”;对;“urlString.html”;在什么地方?,javascript,window.location,Javascript,Window.location,我最近在准备在IE11中运行的web应用程序时遇到了一个问题。我已经找到了一个有效的解决方案,但我更愿意有一个好的理由来解释它为什么有效,而不是猜测 我的问题是使用以下javascript从URL(http://localhost:4724/View/Completion)重定向到退出页面时路径不正确: window.location = "Exit.aspx?timeout=true"; 这导致了IE11中类似的URL。注意额外的/View/: http://localhost:4724/V

我最近在准备在IE11中运行的web应用程序时遇到了一个问题。我已经找到了一个有效的解决方案,但我更愿意有一个好的理由来解释它为什么有效,而不是猜测

我的问题是使用以下javascript从URL(http://localhost:4724/View/Completion)重定向到退出页面时路径不正确:

window.location = "Exit.aspx?timeout=true";
这导致了IE11中类似的URL。注意额外的/View/:

http://localhost:4724/View/Exit.aspx?timeout=true

在Chrome中,它会生成正确的URL:

http://localhost:4724/Exit.aspx?timeout=true

使用window.location时,我可以通过包含正斜杠来纠正此问题,如下所示:

window.location = "/Exit.aspx?timeout=true";
然后将Chrome和IE11正确路由到以下URL:

http://localhost:4724/Exit.aspx?timeout=true


当我为window.location字符串包含正斜杠时,IE11的解释有什么不同

前导斜杠表示绝对路径,即相对于网站根的路径。如果没有前导斜杠,则路径相对于当前URL


为什么它在不同的浏览器中表现不同,我不能说。

前导斜杠表示绝对路径,即相对于网站根的路径。如果没有前导斜杠,则路径相对于当前URL


为什么它在不同的浏览器中表现不同,我不能说。

前导斜杠表示绝对路径,即相对于网站根的路径。如果没有前导斜杠,则路径相对于当前URL


为什么它在不同的浏览器中表现不同,我不能说。

前导斜杠表示绝对路径,即相对于网站根的路径。如果没有前导斜杠,则路径相对于当前URL



为什么它在不同的浏览器中表现不同,我说不上来。

这是我的怀疑,但浏览器之间的不一致让我很反感。如果您改为分配到
位置。路径名
,这应该不是问题。-使用
window.location
作为绝对路径,使用
window.location.pathname
作为相对路径。这是我的怀疑,但浏览器之间的不一致性让我很反感。如果您改为指定
location.pathname
,这应该不是问题。-使用
window.location
作为绝对路径,使用
window.location.pathname
作为相对路径。这是我的怀疑,但浏览器之间的不一致性让我很反感。如果您改为指定
location.pathname
,这应该不是问题。-使用
window.location
作为绝对路径,使用
window.location.pathname
作为相对路径。这是我的怀疑,但浏览器之间的不一致性让我很反感。如果您改为指定
location.pathname
,这应该不是问题。-使用
window.location
作为绝对路径,使用
window.location.pathname
作为相对路径。我认为IE11在这里的行为是正确的。如果没有/url,则url是相对于当前目录的,在本例中/view类似于您对图像等的处理。对于css,不确定为什么Chrome会像您预期的那样工作。是的,我发现Chrome使用这种逻辑真的很奇怪,因为我更好地理解了url的相对/绝对逻辑。现在我想我要调查一下为什么这在一开始起作用。(我不是(完全)疯了,我仍然可以通过控制台让chrome在没有前导斜杠的情况下工作。)好的,我不确定这会对任何人有帮助,但问题是使用相对基标记。Chrome似乎处理得很好,而IE11需要一个绝对的基本标签。我认为IE11在这里的表现是正确的。如果没有/url,则url是相对于当前目录的,在本例中/view类似于您对图像等的处理。对于css,不确定为什么Chrome会像您预期的那样工作。是的,我发现Chrome使用这种逻辑真的很奇怪,因为我更好地理解了url的相对/绝对逻辑。现在我想我要调查一下为什么这在一开始起作用。(我不是(完全)疯了,我仍然可以通过控制台让chrome在没有前导斜杠的情况下工作。)好的,我不确定这会对任何人有帮助,但问题是使用相对基标记。Chrome似乎处理得很好,而IE11需要一个绝对的基本标签。我认为IE11在这里的表现是正确的。如果没有/url,则url是相对于当前目录的,在本例中/view类似于您对图像等的处理。对于css,不确定为什么Chrome会像您预期的那样工作。是的,我发现Chrome使用这种逻辑真的很奇怪,因为我更好地理解了url的相对/绝对逻辑。现在我想我要调查一下为什么这在一开始起作用。(我不是(完全)疯了,我仍然可以通过控制台让chrome在没有前导斜杠的情况下工作。)好的,我不确定这会对任何人有帮助,但问题是使用相对基标记。Chrome似乎处理得很好,而IE11需要一个绝对的基本标签。我认为IE11在这里的表现是正确的。如果没有/url,则url是相对于当前目录的,在本例中/view类似于您对图像等的处理。对于css,不确定为什么Chrome会像您预期的那样工作。是的,我发现Chrome使用这种逻辑真的很奇怪,因为我更好地理解了url的相对/绝对逻辑。现在我想我要调查一下为什么这在一开始起作用。(我不是(完全)疯了,我仍然可以通过控制台让chrome在没有前导斜杠的情况下工作。)好的,我不确定这会对任何人有帮助,但问题是使用相对基标记。Chrome似乎可以处理它,而IE11则希望有一个绝对的基本标签。