javascript - Firefox 上的 HTTPS iFrame 出现安全错误

标签 javascript java html web-applications onesignal

对于我正在从事的实习项目(一个 Java Web 应用程序),我需要向不完全 HTTPS 网站发送通知。 OneSignal 提供了这样做的可能性。

首先,为了测试他们的服务,我直接将客户端 SDK javascript 硬编码在一些 <script> 中。我的 jsp 文件中的标签并且工作正常。

<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async='async'></script>
<script>
  var OneSignal = window.OneSignal || [];
  OneSignal.push(["init", {
    appId: "my-app-id",
    autoRegister: false, 
    notifyButton: {
        enable: true
    }
  }]);
</script>

但是,我不得不将我的 javascript 移至 js 文件中,因为我公司的开发规则规定 javascript 不应位于 jsp 文件中。因此,我将代码链接到一个按钮,以使用 document.querySelector('.id-foo').addEventListener('click', initOneSignal) 手动激活它。 .

然后 JavaScript 文件会动态加载到我的 jsp 的页脚处。

这是我的 js 文件:

(function() {
    document.querySelector('.js-initOneSignal').addEventListener('click', initOneSignal);

    function initOneSignal() {  
        var OneSignal = window.OneSignal || [];
        OneSignal.push(["init", {
            appId: "my-app-id",
            autoRegister: false, 
            notifyButton: {
                enable: true
            }
        }]);
    };
})();

但是,当我从 OneSignalSDK.js 收到此消息时,它不再工作(仅在 Firefox 上,在 Chrome 上没有问题),它尝试打开一个 iFrame 到 https://my-app-name.onesignal.com/webPushIframe但无法并超时。

SecurityError : The operation is insecure

显然这是一个错误 https://github.com/OneSignal/OneSignal-Website-SDK/issues/95 。该问题已标记为已关闭,但我认为它应该再次打开,较新版本的 Firefox 可能已更改了某些内容。这是我的 github 问题的链接:https://github.com/OneSignal/OneSignal-Website-SDK/issues/359

有人遇到过这个问题并找到解决方法吗?

预先感谢您的帮助!

PS:我使用的是 Firefox 60

PPS:iFrame OneSignal 尝试打开:

<!DOCTYPE html>
<html>
    <head>
        <script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js"></script>
        <script>OneSignal._initHttp({
            appId: "myappid",
            subdomainName: "mysubdomainname",
            origin: "http://my-website"
        });</script>
        <link rel="manifest" href="manifest_json">
     </head>
     <body>
     </body>
</html>

编辑:

OneSignal 仍然没有回复。他们的“支持”链接不起作用。

最佳答案

我找到了解决办法!这很明显。我只需要重置 Firefox,它现在工作正常。感谢这个page这给了我提示。

此问题与我在 HTTP 和 HTTPS 配置之间切换以测试不同的 webpsuh 解决方案/服务这一事实有关。为此,我必须使用自定义 SSL 证书来伪装在完全 HTTPS 网站上,并在 Firefox 中添加安全期望。当回到 HTTP 时,我的 Firefox 配置仍然受到此异常的影响,因此 Firefox 抛出了安全错误。

关于javascript - Firefox 上的 HTTPS iFrame 出现安全错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50503497/

相关文章:

javascript - 替换数据 block 中的多个模式

java - 为什么android Bitmap类不使用new关键字?

css - Bootstrap 移动应用程序按钮大小

javascript - 在按下键/单击时缩进文本区域

数组中不同属性值的Javascript对象数量

javascript - 在初始悬停触发点击后,有没有办法解决 "reset"移动 Webkit 的伪悬停行为?

java - 使用 batik 在 JPanel 上加载 SVG 文件

java - 在第一个表中获取最后添加的 id 并使用 java 将其插入到另一个表中

jquery - 如何在悬停时显示数据属性?

javascript - IE8 和 Firefox 中的 event.toElement?