2015-07-23 18 views
9

Trong file js của tôi:javascript pushState trên một tên miền phụ ném ngoại lệ

window.history.pushState('','',slug); 

tôi biết về hạn chế bảo mật đối với phương pháp pushState:

The new URL must be of the same origin as the current URL; otherwise, pushState() will throw an exception.

Tuy nhiên, trong trang web của tôi, tôi sử dụng một tên miền: www.mydomain.com nơi pushState hoạt động tốt. Nhưng khi tôi gọi phương thức trên tên miền phụ của tôi subdomain.mydomain.com, nó ném một ngoại lệ kỳ lạ:

Uncaught SecurityError: Failed to execute 'pushState' on 'History': A history state object with URL ' http://0.0.7.210/ ' cannot be created in a document with origin ' http://subdomain.mydomain.com '.

tôi làm gọi IP 0.0.7.210 là một cái gì đó bên trong nhưng tôi nhận được ngoại lệ này phát triển + môi trường sống.

Tôi giải quyết tên miền phụ của mình thông qua Route53 bằng cách này. Có lẽ nó phải làm gì với điều đó?

+1

Với những gì đối số bạn đang gọi phương pháp này? Có vẻ như bạn đang sử dụng một tên miền khác trong đối số đầu tiên (IP đó) so với tên miền mà bạn đang sử dụng. – Bergi

+0

pushState được nhúng được nhúng vào một hàm nhưng ở đó tôi chỉ chuyển một số nội dung có liên quan, không có gì quan trọng. – DonMB

+1

Url mà bạn vượt qua * là * quan trọng vì dường như nó gây ra lỗi. Bạn có hiểu ý nghĩa của thông báo lỗi không? – Bergi

Trả lời

2

Hóa ra việc đẩy thêm / đã giải quyết được vấn đề.

Thay đổi này

window.history.pushState('','',slug); 

này

window.history.pushState('','','/'+slug); 
Các vấn đề liên quan