URL-hash ist anhaltende zwischen-Weiterleitungen
Aus irgendeinem Grund, nicht IE-Browser scheint zu bestehen und hash-URL (falls vorhanden), wenn ein server-side-redirect gesendet wird (mit dem Location-header). Beispiel:
//a simple redirect using Response.Redirect("http://www.yahoo.com");
Text.aspx
Wenn ich Besuch:
Test.aspx#foo
In Firefox/Chrome, ich bin ergriffen:
http://www.yahoo.com#foo
Kann mir jemand erklären, warum dies passiert? Ich habe versucht, diese mit verschiedenen server-seitige redirects auf verschiedenen Plattformen (alles was in der Location-header, obwohl) und diesem immer scheint zu geschehen. Ich sehe es nicht überall in der HTTP-Spezifikation, aber es scheint wirklich ein problem mit dem Browser selbst. Die URL-hash (wie erwartet) nie an den server gesendet, sodass der server umleiten ist nicht verschmutzt ist es, die Browser sind nur das verharren Sie für einige Grund.
Irgendwelche Ideen?
InformationsquelleAutor chinabuffet | 2011-03-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schlage ich vor, dass dies das richtige Verhalten. Der 302 und 307 status-codes zeigen an, dass die Ressource an anderer Stelle gefunden werden.
#bookmark
ist eine Position in der Ressource.Einmal die Ressource (html-Dokument) gefunden wurde, ist es für den browser, suchen Sie die
#bookmark
innerhalb des Dokuments.Die Analogie ist dies: Sie wollen etwas in ein Buch in Kapitel 57, so gehen Sie in die Bibliothek um das Buch. Aber es ist ein Hinweis auf die Haltbarkeit sagen, das Buch hat sich verschoben, es ist nun in das andere Gebäude. So gehen Sie an die neue Position. Möchten Sie noch Kapitel 57 - dabei ist es unerheblich, wo Sie bekam das Buch.
Location
header. So etwas wiehttp://www.yahoo.com#
+1 für hervorragende Analogie
IE8 nicht umleiten mit hash. Ich will es umleiten. Irgendwelche Ideen?
hast du eine Antwort auf diese, ich hoffe auch, es gibt eine Lösung, die im IE? Btw IE9 auch nicht
getestet IE10, bedeutet behalten die hash-Umleitung.
InformationsquelleAutor Ben
Dies ist ein Aspekt, der nicht gedeckt war, die von früheren HTTP-Spezifikationen aber angesprochen wurde in der späteren Entwicklung HTTP:
Also das fragment der original-URI sollte auch verwendet werden, für die Umleitung URI, es sei denn, es enthält auch ein fragment.
Obwohl dies war nur ein Entwurf, der im Jahr 2000 abgelaufen, es scheint, dass das Verhalten wie oben beschrieben ist der de-facto-standard-Verhalten unter den heutigen web-Browsern.
@Julian Reschke oder @Mark Nottingham wahrscheinlich wissen mehr/besser über diese.
InformationsquelleAutor Gumbo
Aus, was ich gefunden habe, scheint es nicht klar ist, was das genaue Verhalten sollte. Es gibt plently von Menschen, die Probleme mit dieser, einige von Ihnen will, um das Lesezeichen durch die Umleitung, einige von Ihnen loswerden will.
Verschiedene Browser handhaben das anders, so in der Praxis ist es nicht sinnvoll darauf zu verlassen, entweder Verhalten.
Es ist definitiv ein browser-Problem. Der browser sendet die bookmark-Teil der URL an den server, so gibt es nichts, was der server tun könnte, um herauszufinden, ob es ein Lesezeichen ist oder nicht, und nichts getan werden könnte, über die es zuverlässig.
InformationsquelleAutor Guffa