【发布时间】:2016-04-01 13:10:43
【问题描述】:
如何在 Service Worker 中发出 JSONP 请求?
您可能知道,Service Worker 没有document。因此,许多像 this one 这样的 JavaScript 方法都不起作用。
我需要发出 JSONP 请求,因为 Blogger API 不使用 CORS 回答来自不同域的请求。
感谢您的回复。
【问题讨论】:
如何在 Service Worker 中发出 JSONP 请求?
您可能知道,Service Worker 没有document。因此,许多像 this one 这样的 JavaScript 方法都不起作用。
我需要发出 JSONP 请求,因为 Blogger API 不使用 CORS 回答来自不同域的请求。
感谢您的回复。
【问题讨论】:
Web Worker 全局有一个名为 importScripts 的方法,您可以使用它来包含脚本 url。
所以只要定义一个回调函数,将函数名作为callback的url参数,并将url传递给importScripts
webworker.js
function cb(data){
console.log(data);
}
importScripts('http://example.com/jsonp.php?callback=cb');
【讨论】:
self.cb = function (resp) { })
importScripts:“在 Chrome 71 之前,在安装处理程序之外异步调用 importScripts() 将起作用。从 Chrome 71 开始,这些调用会引发运行时异常(除非之前在安装处理程序中导入了相同的 URL),与其他浏览器中的行为相匹配。” -- developers.google.com/web/updates/2018/10/…