我目前正在Umbraco(C#/ Razor MVC CMS)建立一个多语言网站。
我有3种语言,都有自己的域名,但都指向相同的Umbraco安装。 例如:
multilingualwebsite-fr.com
multilingualwebsite-en.com
multilingualwebsite-de.com
当用户从下拉列表中选择其他语言时,该站点会重定向到与该语言关联的域,该域将告知CMS切换语言。
我想在这些域名之间传输有关用户的少量数据,即他们是否接受了弹出窗口或关闭了cookie栏。
我已经考虑过使用Cookie和会话,但很明显,这些只能在创建它们的同一个域上工作,因此无法在每个语言网站之间传输数据。因此,一旦切换语言,我就无法读取cookie /会话数据。
我在切换语言时为url添加了参数,因此URL看起来像
multilingualwebsite-fr.com?nopopup=true&cookieaccepted=true
但是我发现这些参数不整齐,而且我将来可能需要传递更多信息,而且这种情况会变得更长。
有没有更好的方法将数据从一个域传输到另一个域我没有想过?
在具有multilingualwebsite.com/fr/
样式域的hindsite中会排除此问题,但不希望客户想要他们的网站。
答案 0 :(得分:1)
现代浏览器在跨域通信方面非常严格。你最好在服务器端做一些事情。
如果所有域都指向相同的实际应用程序,那么当您知道用户将切换语言时,您可以将内容存储在内存中。
这样的事情:
如果每个语言域都是不同的应用程序,则服务器可以对新语言域进行HTTP调用,以告知用户即将到来。