跨域刷新

ajax异步登录和跨域刷新页面

ε祈祈猫儿з 提交于 2020-04-06 22:45:10
对于子页面刷新父页面,比如在a.html中嵌套了一个iframe,里面是b.html。如果a.html和b.html是同一个域,则操作b.html时要刷新父页面a.html时,很简单,通过js就能完成,在b.html中要刷新父页面的操作中加入js代码parent.location.reload();即可。 但如果a.html和b.html是来自两个不同的域,即b.html是从另一个域嵌套进来的,这时通过上面的js代码是达不到刷新父页面的目的的。这时可做一个变通的处理,即js代码可以这样写:parent.location=“www.abc/a.html”;parent.location.reload(); 其实就是写出a.html的完整路径,然后刷新这个路径即可(其中abc是我假定的一个域名)。 关于跨域刷新,一个典型的应用就是利用ajax异步登录,而登录的iframe来自另一个域,嵌套在当前页中(如首页),这么做的目的是为了在一个域中登录后,其他域可以共享登录状态(跨域是通过cookie来实现共享的)。当然,你登录完后,因为是异步,页面不会刷新,你当然希望手动刷新一下,将登录框隐藏(登录后,存了cookie,判断cookie是否存在,来判断是否登录,依据这个来决定登录框的隐藏),所以会有上面的解决方案。对于这个案例的,具体代码如下(后台的登录验证省略):