在调用window.history.pushState()

时间:2016-09-17 16:12:57

标签: javascript cross-domain-policy

我有一个小型多语言网站,被组织为同一个域的多个子域,每个子域都以语言的ISO 639代码为前缀。还有一个通用www.子域,其逻辑处理重定向到适当的语言子域,基于用户代理指定的语言,以及处理遗留URL。所有域都指向在Windows上的一些相对现代版本的IIS上运行的同一应用程序的同一实例(我不记得确切,因为它是托管环境)。

一切正常,但是当用户从一种语言转到另一种语言时,我希望实现更平滑的过渡。我已经设置了页面,以便我可以完全检索它们,或者只根据我用来访问它们的URL来检索相关的可转换内容,这样我就可以在标准请求中加载整个页面,但只通过AJAX加载相关的部分当我需要不同语言的相同内容时。然后我将这些内容放在适当的页面位置,最后在旧语言和新语言之间交叉淡入淡出。

视觉效果很好,但我需要相应地更新浏览器的地址栏,以及我遇到问题的地方,因为这似乎违反了window.history.pushState()的设计行为。我意识到允许脚本以某种隐藏的方式愉快地更改用户的地址栏将是无数安全问题的根源,但是有一个应用程序,其中所有这些子域只是字符串中的不同值,这有点令人沮丧变量,并实施所有逻辑以生成无缝"内容翻译,只是偶然发现一些简单的事情,比如更改浏览器地址栏中显示的URL。

有人能想到这个问题的解决方案或解决方法吗?谢谢!

0 个答案:

没有答案