Chrome通知使用AJAX
Chrome Notifications Using AJAX
在页面加载时,我请求用户允许这样的通知:
document.addEventListener('DOMContentLoaded', function () {
if (Notification.permission !== "granted")
Notification.requestPermission();
});
我写了一个函数来发送通知给用户,它工作得很好:
function push(title, message, location) {
if(!Notification) { return; }
if (Notification.permission !== "granted") { return; }
var notification = new Notification(title, {
icon: 'http://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png',
body: message,
});
notification.onclick = function () {
window.open(location);
};
}
像这样使用:
push('Test', 'Test Message', 'http://example.com');
然后我有一个PHP脚本,目前它是静态的,并返回相同的东西测试很快是数据库驱动。
session_start();
header('Content-Type: application/javascript');
if(!isset($_SESSION['notify'])) {
echo json_encode(array(
'Title' => 'Welcome to our Site',
'Message' => 'You are current recieving notifications.',
'Location' => 'http://example.com/',
'State' => true
),true);
$_SESSION['notify'] = true;
} else {
echo json_encode(array(
'State' => false
), true);
}
当页面被直接访问时,这也可以正常工作。这个问题发生在我的AJAX请求中:
setInterval(function() {
$(document).ready(function() {
$.post('../notify/get_notify.php').done(function(response) {
if(response.State) {
push(response.Title, response.Message, response.Location);
}
console.log(response);
});
});
}, 5000);
问题就在这里!当我检查网络时,每隔5秒就会发出一个请求并返回响应。但是,控制台没有记录任何内容,并且没有执行push()
方法。
我发现了这个问题,由于$.post()
的范围,我无法检索任何东西,所以我返回了响应的值,如下所示:
setInterval(function() {
$(document).ready(function() {
response = $.post('../notify/get_notify.php').done(function(response) {
return response;
});
if(response.State) {
push(response.Title, response.Message, response.Location);
}
});
}, 5000);
相关文章:
- Zendesk app.js示例用于发送外部电子邮件通知或AJAX请求
- 在ajax调用后在rails中显示通知
- 通知Ajax/Javascript后台PHP已经完成
- 通知仅第一次有效 - AJAX
- 完成方法后通过 Ajax 的 Rails 闪光通知
- 当新数据插入 MySQL 时,AJAX 通知警报弹出或发出声音
- Ajax图像上传通知
- Ajax退货通知小学生功能帮助
- 使用ajax推送通知
- 如何缓存Ajax调用获得的通知数据
- Chrome通知使用AJAX
- 我如何使用ajax推送引擎来发出通知
- 使用 Ajax/Javascript 按下按钮时弹出通知弹出窗口
- 用于推送/comet/反向ajax通知的JavaScript库
- Ajax/php获取最新数据通知
- 可以一个jQuery ajaxSuccess函数通知在另一个(javascript)文件的AJAX事件?如果是这样,我做
- Ajax调用后通知
- Ajax用于通知服务器上的变量更改
- D3.js -在AJAX请求期间添加加载通知
- 当新的通知带有codeigniter和nodejs时,如何调用AJAX