服务工作者中的XMLHttpRequest

时间:2016-05-09 09:41:39

标签: php json push-notification google-cloud-messaging service-worker

我正在尝试在chrome上创建推送通知系统。 我有一个从mysql中获取数据并回显JSON的php,现在我想调用一个函数getJsonCode(),它在推送通知到达时被激活并读取JSON数据。

在我的服务工作者中,我创建了标准功能。问题是,当我使用XMLHttpRequest创建getJsonCode时,它告诉我它没有定义

self.addEventListener('install', function(event) {
  self.skipWaiting();
  console.log('Installed', event);
});
self.addEventListener('activate', function(event) {
  console.log('Activated', event);
});
self.addEventListener('push', function(event) {  
  console.log('Push message', event);
  getJsonCode();
  );
})

getJsonCode() {
  codeRequest= new XMLHttpRequest();
  codeRequest.open('get', 'myfileWithJson.php', true);
  codeRequest.send();
  dataJSON = codeRequest.responseText;
  console.log('rispostaJSON');
}

是否可以在服务工作者中调用这样的外部文件,或者是否存在某些限制?因为我不知道为什么这不起作用

2 个答案:

答案 0 :(得分:5)

您可以使用新的Fetch API,而不是var regex = '/^[0-9]{1,8}$/'; // if you want min 1 and max 8 numbers var regex = '/^[0-9]{8}$/'; // if you want exact 8 numbers static已被弃用,在服务工作者范围内不可用。

this ServiceWorker Cookbook recipe中有一个确切想要实现的例子。

答案 1 :(得分:3)

你可以使用fetch()而不是XHR,因为fetch()是一个新的API,它允许你发出类似于XHR的请求,但是有一个更简单/友好的API。更多关于fetch {{3 }}。试试这个: -

WHERE {}