我已经为与之合作的公司建立了一个内部网。内联网要求用户使用其Google帐户登录才能访问。因此,我还使用默认的iframe嵌入为Google日历设置了嵌入代码,并使用了一些php换出了日历以查看用户的电子邮件,以向他们显示适当的日历(例如:以joe身份登录)登录时,@ gmail.com将使用joe@gmail.com的地址填充日历,而jill@gmail.com将使用jill@gmail.com的地址填充日历。)
这对于大多数人来说效果很好,但是某些浏览器会遇到一些麻烦,并且错误非常不一致,这使得故障排除变得很困难。另外,当我检查源代码时,正确的电子邮件会显示在iframe中,因此php交换可能不是问题。
示例1:我在Windows 10上使用Firefox登录。日历按预期工作。
示例2:我在Windows 10上使用Chrome登录。显示了日历,但未显示事件。没有错误。
示例3:#1号同事在Windows 10上使用Chrome登录。日历按预期工作。
示例4 :#2同事在Windows 10上使用Chrome登录。尽管源代码明确指出,他仍收到“您无权查看一个或多个日历”错误。毫无疑问,他只能访问他的个人日历(他也已在Google本身上登录了自己的Google帐户,因此也没有冲突)。
示例5::我在Windows 10上以隐身模式使用Chrome登录。日历可以正常工作。
示例6:我在Windows 10上使用Edge登录。日历在初始登录时有效,但是当我导航到另一页时,日历仍然显示,但所有事件消失而没有显示的错误。这一直持续到我再次登录。
示例7:#3号同事在Mac OSX上使用Chrome登录。日历可以在初始登录时使用,但是当她导航到另一个页面时,日历仍然显示,但是所有事件都消失了,没有显示任何错误。这一直持续到她再次登录。 (这在她使用的所有浏览器中都是一致的)
示例8:#4号同事在Mac OSX上使用Chrome登录。日历可以正常工作。
最终,我只是迷失了从哪里开始寻找这些错误并缩小原因的范围。清除缓存似乎有时仅能起作用,而有时甚至会导致弹出另一个错误。有谁知道是什么原因导致这些不一致的错误,以及从哪里开始寻找解决此问题的方法?
答案 0 :(得分:1)
当通过其他浏览器使用嵌入式iframe日历时,这仍然是intermitttent issue。
以下是针对此问题的一些建议解决方案:
在此github post中,rullzer建议采用一种更清洁的方法来处理IFRAME上的cookie,以便将所有cookie迁移为宽松的相同站点cookie。
这只会使cookie更加安全。另外,它可以确保 您在某个人的某个地方嵌入了一些公共页面 事情。 (因为IFRAME不会发送任何cookie,因此会导致 “ publicpage”呈现)。