【问题标题】:How to make a JSONP request inside a Service Worker?如何在 Service Worker 中发出 JSONP 请求?
【发布时间】:2016-04-01 13:10:43
【问题描述】:

如何在 Service Worker 中发出 JSONP 请求?

您可能知道,Service Worker 没有document。因此,许多像 this one 这样的 JavaScript 方法都不起作用。

我需要发出 JSONP 请求,因为 Blogger API 不使用 CORS 回答来自不同域的请求。

感谢您的回复。

【问题讨论】:

    标签: javascript service-worker


    【解决方案1】:

    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) { }
    • 从 Chrome 71 开始,不允许运行时调用 importScripts:“在 Chrome 71 之前,在安装处理程序之外异步调用 importScripts() 将起作用。从 Chrome 71 开始,这些调用会引发运行时异常(除非之前在安装处理程序中导入了相同的 URL),与其他浏览器中的行为相匹配。” -- developers.google.com/web/updates/2018/10/…
    猜你喜欢
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 2022-09-14
    相关资源
    最近更新 更多