2012-11-12 9 views
31

Otrzymuję ten błąd w konsoli przeglądarki Firefox: SecurityError: The operation is insecure a winna jest funkcja HTML5: window.history.pushState() kiedy próbuję załadować coś z AJAX. Ma załadować niektóre dane, ale JavaScript zatrzymuje się na błędach.SecurityError: Operacja jest niezabezpieczona - window.history.pushState()

Zastanawiam się, dlaczego tak się dzieje. Czy to jakaś błędna konfiguracja serwera? Każda pomoc będzie doceniona.

UPDATE: Tak, to był błąd serwera z nazwą domeny nie pasujące: http://en.wikipedia.org/wiki/Same-origin_policy

+4

Czy uzyskujesz dostęp do adresu URL 'file: ///'? – robertc

+0

@robertc co masz na myśli? Cały czas "http: //". Podejrzewam, że może to być spowodowane używaniem subdomeny, ale 'pushState' próbuje wciskać tylko'/', więc nie powinno to mieć żadnego wpływu. – Atadj

+0

Właśnie sprawdzałem ... – robertc

Odpowiedz

27

Upewnij się, że po Same Origin Policy. Oznacza to tę samą domenę, tę samą poddomenę, ten sam protokół (http i https) i ten sam port.

How does pushState protect against potential content forgeries?

EDIT: Jak @robertc trafnie wskazał w swoim komentarzu, niektóre przeglądarki rzeczywiście wdrożyć nieco inne zasady bezpieczeństwa podczas pochodzenie jest file:///. Nie wspominając można napotkać problemy podczas testowania lokalnie file:/// gdy strona oczekuje, że zostanie uruchomiony z innego pochodzenia (a więc pushState zakłada scenariuszy produkcyjnych pochodzenia nie localhost scenariuszami)

2

W moim przypadku brakuje „www. " z adresu URL, który naciskałem. To musi być dokładne dopasowanie, jeśli pracujesz na www.test.com, należy wcisnąć do www.test.com i nie test.com

2

nie należy próbować otworzyć plik z metodą Folder-Explorer (IE file://), ale otworzyć ten plik z http:// (tj. http://yoursite.com/ od http://localhost/)

0

Miałem ten sam problem, gdy wywołano inny plik javascript z pliku bez umieszczania "fizycznego" adresu javascript. Rozwiązałem go nazywając go w ten sam sposób z html, na przykład: „JS/archivo.js” zamiast „archivo.js”

2

Doświadczyliśmy SecurityError: Operacja jest niepewna gdy użytkownik wyłączył swoje ciasteczka przed odwiedzeniem naszej witryny wszelkie późniejsze żądania XHR, które próbują użyć sesji, oczywiście zawiodą i spowodują ten błąd.

+0

jak rozwiązałeś ten problem? –

Powiązane problemy