Html5 History Api - pushState from a domain to a subdomain
Asked Answered
I

1

16

I have a website as the landing and information page to a web portal type of application.

I need the link that goes to the portal to set off an animation that beautifully transitions to the portal view (navigation slides out, new navigation slides in, various widgets fade out, new ones fade in, etc).

However, I also need the url to go from www.mydomain.com to portal.mydomain.com.

I'm willing to go to any length to have BOTH, the animation to load the portal and the url to be a subdomain.

As it stands I understand doing this would violate the security policy and not be allowed, but there is no way to achieve a fluid transition into the portal if a reload is to be had.

Is there ANYTHING that can be done? Perhaps some way to establish explicit trust between the two domains.

Insole answered 11/2, 2013 at 7:52 Comment(4)
do you get an error from history.js when you're trying to pushState to a subdomain?Argot
Indeed I am. SecurityError: The operation is insecure.Insole
hmmm, well it seems that you can't then, because it is against the same origin policy.Argot
There seems to be several ways to circumvent, #3076914. However, I'm in need of an authoritative answer for my situation so that I don't use the wrong method and open a security vector.Insole
T
15

It can't be done. This is by design. There are no exceptions.

From the Mozilla pushState documentation:

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

Thies answered 11/2, 2013 at 23:50 Comment(3)
Then what does the link in my comment describe how to do?Insole
Does it mention pushState, replaceState or "History API"?Thies
I really hope that a way exists in the future. Theres no reason that it couldnt be done similar to how CORS works now, by reading the headers of preflight requests to the subdomain to validate accessGubernatorial

© 2022 - 2024 — McMap. All rights reserved.