2014-09-08 13 views
6

Mam window.history.replaceState(null, null, 'about'); w main.js, które znajdują się na moim serwerze na .replaceState(): stan historii z adresem URL ... nie można utworzyć w dokumencie o oryginalnym kodzie

Następnie na stronie o nazwie (znajduje się w / (root) na moim serwerze), mam link, który używa window.history.replaceState(null, null, 'about:me'); na tej stronie. Wszystko działa poprawnie, ale po kliknięciu na innym linku z tej samej funkcji, ale z about:girlfriend jako URL, Dostaję komunikat o błędzie:

Uncaught SecurityError: Failed to execute 'pushState' on 'History': A history state object with URL 'about:girlfriend' cannot be created in a document with origin 'http://my.domain.com'.

nie wiem dlaczego moja przeglądarka (najnowsza wersja Chrome) sądzę, że próbuję dotrzeć do tej strony, używając pushState i nie wiem, dlaczego otrzymuję ten komunikat o błędzie, niezależnie od tego, ile razy go przeczytałem. Czy ktoś może mi to wyjaśnić? Nie używam do tego celu History.js.

Warto wspomnieć, że nie otrzymuję tego komunikatu o błędzie, jeśli zmienię : na coś innego, na przykład - lub /. Chcę użyć :, ponieważ / nie działa (nie znaleziono strony 404), a - nie pasuje - lepiej z :.

+0

Czy kiedykolwiek rozwiązać ten problem, bo mam dokładnie ten sam problem w moim projekcie teraz . – najk

+4

możliwy duplikat [Historia JavaScript.PushState nie działa?] (Http://stackoverflow.com/questions/20079704/javascript-history-pushstate-not-working). Pamiętaj też, że ten błąd wystąpi, jeśli próbujesz wyświetlić lokalnie stronę. Strona musi przejść przez serwer HTTP do pracy, więc jeśli otworzysz plik index.html w przeglądarce z dysku twardego, pojawi się ten błąd. – davidcondrey

Odpowiedz

4

Jeśli próbujesz to zrobić lokalnie, poniższe działa zarówno lokalnie, jak i zdalne załadowanych stron:

history.replaceState(null,null, window.location.pathname + "your thing here") 
Powiązane problemy