Notification请求权限时总提示”被拒绝”怎么办?

博主瑞腾 阅读 43

我按文档写了Notification请求权限的代码,但每次调用Notification.requestPermission()都直接返回’denied’状态,明明之前没授权过啊…

尝试过在用户交互事件里触发,像这样:

button.addEventListener('click', () => {
  Notification.requestPermission().then(result => {
    console.log(result); // 输出一直是"denied"
  });
});

检查了浏览器设置发现Chrome里我的网站确实被直接拉黑了,但没找到哪里改回来。难道初始化请求必须得在HTTPS环境下才能正常弹窗吗?

我来解答 赞 9 收藏
二维码
手机扫码查看
2 条解答
シ慧芳
シ慧芳 Lv1
问题应该出在浏览器的安全设置上。首先确认你的网站是在HTTPS环境下运行的,因为Notification API要求必须通过安全连接才能使用。其次,检查一下Chrome浏览器的站点设置,可能不小心将你的网站加入到了通知拒绝列表中。你可以手动移除这个限制:

1. 打开Chrome,输入 chrome://settings/content/notifications 进入通知设置页面。
2. 在“允许”或“阻止”列表中找到你的网站。
3. 如果网站在“阻止”列表中,点击它然后选择“允许”。

另外,确保在用户交互事件中请求权限,你已经在按钮点击事件里调用了 Notification.requestPermission(),这部分是正确的。如果以上步骤都没有解决问题,尝试清除浏览器缓存或者换个浏览器试试。有时候浏览器的缓存问题也会导致奇怪的行为。
点赞
2026-03-22 14:12
皇甫玉宸
先确认两件事:网站必须在HTTPS环境下,Chrome对HTTP直接拒绝;另外检查chrome://settings/content/notifications,把你的域名从黑名单移除。搞定。
点赞 4
2026-02-18 06:00