对于我正在从事的实习项目(一个 Java Web 应用程序),我需要向
首先,为了测试他们的服务,我直接将客户端 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/