当服务工作人员尝试缓存包含UTF-8字符标头的请求时,Chrome选项卡中断,出现RESULT_CODE_KILLED_BAD_MESSAGE

kognpnkq  于 2022-12-16  发布在  Go
关注(0)|答案(1)|浏览(3091)

我在开发过程中偶然发现了这个问题,花了我相当长的时间才弄明白。看起来,如果你有一个service worker,并且你的service worker试图缓存一个包含ü字符的请求,在Chrome浏览器选项卡中的标题将完全中断,并显示RESULT_CODE_KILLED_BAD_MESSAGE,让你没有任何合理的错误消息。或者至少为您指明了正确的方向,以便找到解决方案。x1c 0d1x
我在Safari/Firefox中测试了同样的东西,似乎这些浏览器忽略了这个字符,并且没有受到这个问题的影响。虽然在标题中添加字符ü是规范所禁止的,正如here所解释的那样,我希望Chrome给予一个更好的错误,而不仅仅是死亡。

fquxozlt

fquxozlt1#

一个明显的修正是用base 64编码你的头文件,以确保没有不允许的奇怪字符。这个修正也可以在this post上找到,但是在谷歌搜索结果时很难建立联系。

btoa(myStringWithNotAllowedCharacters)

相关问题