出于某种原因,当发送服务器端重定向(使用 Location 标头)时,非 IE 浏览器似乎会保留 URL 哈希(如果存在)。例子:
// a simple redirect using Response.Redirect("http://www.yahoo.com");
Text.aspx
如果我访问:
Test.aspx#foo
在 Firefox/Chrome 中,我被带到:
http://www.yahoo.com#foo
谁能解释为什么会这样?我也尝试过在不同平台上使用各种服务器端重定向(不过,所有这些都会导致 Location 标头),这似乎总是会发生。我在 HTTP 规范中的任何地方都没有看到它,但这似乎确实是浏览器本身的问题。URL 哈希(如预期的那样)永远不会发送到服务器,因此服务器重定向不会被它污染,浏览器只是出于某种原因将其持久化。
有任何想法吗?