【问题标题】:Silent failure loading page application in iframe over https通过 https 在 iframe 中静默失败加载页面应用程序
【发布时间】:2011-12-04 04:42:19
【问题描述】:

问题

我有一个应用程序驱动客户页面上的选项卡。如果用户没有启用 FB 的“安全浏览”功能,应用程序可以正常工作。如果尝试通过 HTTPS 查看,iframe 甚至不会出现(没有错误,没有混合内容警告)。当通过 HTTP 正确加载时,id 为“pagelet_app_runner”的 div 中插入了一个 iframe,应用程序内容在其中加载。通过 HTTPS,此 div 保持为空,并且 iframe 不会插入到页面中。 Firebug 或 Chrome 的等效控制台中没有出现 Javascript 错误。

我为什么要问这里

主机拥有有效的 SSL 证书,并且相关 URL 中没有“混合内容”。通过直接访问 URL,我可以通过 HTTP 或 HTTPS 成功查看内容,也可以通过访问 apps.facebook.com/canvasURL/tabURL 来完成相同的操作。仅当尝试在页面选项卡中查看时,HTTPS 加载才会如上所述失败。我的应用程序配置了常规和安全的画布和选项卡 URL。

尝试调试

我已经记录了与 Charles 的一些会话,但由于 iframe 没有被插入到页面中,我想我是在问题已经发生之后才解决的。我不是查尔斯专家,很高兴在这里得到纠正。

Apache 没有看到受影响负载的任何请求(在常规或 ssl 日志中)。 access_log 中的非 SSL 负载按预期完成。

请求帮助

我没有调试这个的想法。有人有什么建议吗?我可能犯了什么真正明显和愚蠢的错误? :)

编辑:更好的格式

【问题讨论】:

标签: facebook iframe https facebook-page


【解决方案1】:

您的应用程序画布 URL 是 https://skinnycomp.nextstudio.com.au/skinnycowcomps/ ,它会向 Facebook 代理发送 404 错误(通过选项卡查看应用程序时请求通过代理),通过应用程序查看您的应用程序 (https://apps.facebook.com/122381834451561/) 时也是如此,同样是 404...也许 Facebook 代理忽略 404 并发布空白... 尝试将画布 URL 更改为https://skinnycomp.nextstudio.com.au/skinnycowcomps/tab,也可以检查您的应用是否通过页面选项卡访问,在signed_request 中应该有page_id...

23:51:15.379[549ms][total 1667ms] Status: 404[Not Found]
GET https://skinnycomp.nextstudio.com.au/skinnycowcomps/

【讨论】:

  • 返回 404 的 Canvas URL 是预期行为,Tab 是应用程序的唯一集成点。我刚刚尝试让 Canvas URL 返回 200 OK 并包含一些内容;它似乎与 Tab URL(从未返回 404)没有任何关系。不过感谢您的建议,我很乐意尝试任何事情。
【解决方案2】:

这是一个真正的远景,因为我确定您已经对所有设置进行了三次检查,但是如果在应用设置的“页面标签 URL”字段中指定了无效的 URL,则可能会出现空白页面。由于它只发生在 https 上,因此它意味着安全页面选项卡 URL 条目的特定内容。可能值得再次检查,甚至可能重新保存它或将其更改为其他内容以查看是否有帮助。

【讨论】:

  • 无需为明显的建议辩护,当遥控器在我们手中时,我们都在寻找它 :) 安全和常规页面标签 URL 都是相同的(http 上的后缀“标签” /https 画布 URL),因此很难在此处出错。无论如何,我已经尝试过旧的复制粘贴文本,即使它出现相同的东西,但没有结果。无论如何,如果我的 URL 错误,我也希望在 Apache 日志中看到一些内容。感谢您的建议!
  • 作为一个有趣的实验,如果您将安全页面选项卡 URL 设置为 https://encrypted.google.com/ 会发生什么?只是想看看“已知实体”会发生什么。
  • 不管我给它的 URL 是什么,都会以同样的方式失败。还使用全新的设置进行了测试 - 新的应用程序、不同的主机等,相同的结果。这确实表明这是我做错的事情,但我一生都无法弄清楚:(
【解决方案3】:

我在常规和安全标签 URL 字段中使用相对 URL。从记忆中,这里的相对 URL 在过去的某个时候是强制性的。现在看来,相对 URL 仍然适用于 HTTP,但不适用于 HTTP。修复:绝对 URL。希望 FB 更新他们的字段验证以匹配所需的内容。

【讨论】:

  • 嗯......这正是我在回答中想到的那种事情,这就是为什么我特别建议不仅仔细检查安全页面选项卡 URL 条目,而且将其设置为一个已知的好网址,例如https://encrypted.google.com/。你说它没有任何区别......现在你说这一直是问题?!
  • 我是在假设相对 URL 正常的情况下进行操作的(有几个很好的理由可以假设这一点)。我确实测试了不同的安全页面选项卡 URL,但我是通过更改画布 URL 和安全画布 URL 并让页面选项卡 URL 保持相对关系来实现的。该更改仅针对 HTTP 版本正确反映,因此“已知良好”更改似乎无法解决任何问题。
猜你喜欢
  • 2021-03-28
  • 2013-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-01
  • 2017-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多