0

我正在使用 Facebook 中的 html 输入选项卡构建一些表单。我的表单操作是发布和插入链接到外部托管的 php 函数文件。

问题是,如果用户没有使用 Facebook 的新 https 设置,则会显示一个带有“不安全表单”的弹出窗口

有没有为什么要提供一个外部托管的安全处理程序,还是我会更深入地研究 Facebook ap 制作?

4

1 回答 1

1

Facebook 将您的应用加载到 iframe 中(使用 POSTing 表单)。当用户在 facebook 中使用 https 时,他们使用应用程序设置中的Secure Canvas URL属性,当用户未进行安全浏览时,他们使用Canvas URL。因此,您的页面不是从 https 而是从 http 加载的,这就是浏览器向用户显示该警告的原因。

您可以做的是检查您的页面何时加载使用的协议,如果不是 https,则从 https 重新加载页面。类似的东西(使用window.location 对象):

var location = window.location;
if (location.protocol != "https:") {
    window.location.href = "https://" + location.host + "/" + location.pathname + location.search
}

或者,如果您不希望在查询字符串中有 url,您可以简单地替换:

window.location.href = window.location.href.replace("http", "https");
于 2012-05-15T00:00:20.413 回答