我使用tableau JS API操作由我自己的tableau服务器实例提供的嵌入式tableau仪表板。
当我的网页生成带有信任令牌的网址并调用
时url
(其中options
是页面上的空div,{{1}}是嵌入了信任票的网址,{{1}}只包含宽度/高度,hidetabs和hidetoolbar属性。)
Safari始终使用登录Tableau呈现viz,就像信任票证不存在一样。但是相同的代码在chrome中工作正常,并且不会显示登录信息。
我已验证使用信任令牌生成的URL是正确的,而不是将其传递给JS lib,而是直接在iframe外面打开一个新窗口。
运行开发工具我看到在iframe代码中加载的页面中有一些请求访问window.parent.xxx,这些似乎被safari阻止,这可能是原因。
"阻止了一个有起源的框架" http://"从 访问具有原点" http://"的框架。协议, 域名和端口必须匹配。"
从安全的角度来看,我认为这是有道理的,但这应该如何运作?我猜测chrome要么更宽松,要么被Tableau呈现不同的内容,因为它甚至不会发出警告。