我正在使用 Facebook 中的 html 输入选项卡构建一些表单。我的表单操作是发布和插入链接到外部托管的 php 函数文件。
问题是,如果用户没有使用 Facebook 的新 https 设置,则会显示一个带有“不安全表单”的弹出窗口
有没有为什么要提供一个外部托管的安全处理程序,还是我会更深入地研究 Facebook ap 制作?
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");