如何在localhost子域上注册服务工作者?

时间:2016-11-21 20:17:00

标签: javascript google-chrome subdomain service-worker

我在https://example.co.uk有一个域名,在https:// chat.example.co.uk有一个域名,两者都使用生产中的服务工作者。在localhost上进行开发时,我可以使用https://example.co.uk域上的服务工作者(在localhost:1337上),但不能在使用聊天子域(在chat.localhost:1337上)或任何其他子域时使用。

这不是现场版本的问题,但是在处理服务工作者时会使开发变得非常困难。代码。

我是否遗漏了一些重要信息,或者我是否可以采取一些措施让服务人员进行注册?

我尝试打开#allow-insecure-localhost Chrome标记,但我不认为这是问题所在。

1 个答案:

答案 0 :(得分:0)

正如您所观察到的,只有http://localhost被Chrome列入白名单才能获得需要安全上下文的功能,而不是localhost的任何子域名 - 我认为这不是一件事情在您的本地域名解析设置?

为方便本地测试,我建议您指示您的网络服务器在两个不同的端口上收听localhost上的请求,例如13371338。这可能是模拟生产中两个不同来源的最简单方法,它们具有孤立的安全上下文。

显然可能需要做一些额外的工作来重构您的配置,这样您就可以与开发环境中的子域进行通信,而是使用相同的localhost域进行通信,但需要使用不同的端口。