http – 重定向之间存在URL哈希

由于某种原因,非IE浏览器在发送服务器端重定向(使用Location头)时似乎持续了一个URL哈希(如果存在)。例:

// a simple redirect using Response.Redirect("http://www.yahoo.com");
Text.aspx

如果我访问:

Test.aspx#foo

在Firefox / Chrome中,我将转到:

http://www.yahoo.com#foo

谁能解释为什么会发生这种情况?我试过这个与各种服务器端重定向在不同的平台以及(所有导致的位置头,虽然),这总是似乎发生。我没有看到它在HTTP规范的任何地方,但它似乎是一个与浏览器本身的问题。 URL哈希(如预期的)从不发送到服务器,因此服务器重定向不被它污染,浏览器只是由于某种原因持久化。

有任何想法吗?

我建议这是正确的行为。 302和307状态码指示资源将在别处找到。 #bookmark是资源中的位置。

一旦找到资源(html文档),浏览器就可以在文档中找到#bookmark。

比喻是:你想在第57章的一本书里看一些东西,所以你去图书馆拿书。但是有一个在架子上的说明,说这本书已经移动,它现在在另一个建筑物。所以你去新的位置。你仍然想要第57章 – 这是不相干的地方你拿着这本书。

http://stackoverflow.com/questions/5283395/url-hash-is-persisting-between-redirects

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:http – 重定向之间存在URL哈希