Service Worker 可以缓存 POST 请求吗?

2024-02-06

我尝试在 fetch 事件的服务工作人员中缓存 POST 请求。

I used cache.put(event.request, response),但返回的承诺被拒绝TypeError: Invalid request method POST..

当我尝试使用相同的 POST API 时,caches.match(event.request)给了我未定义的信息。

但是当我对 GET 方法执行相同操作时,它起作用了:caches.match(event.request)GET 请求给了我一个响应。

Service Worker 可以缓存 POST 请求吗? 如果不能,我们可以用什么方法让应用程序真正离线?


您无法使用 Cache API 缓存 POST 请求。看https://w3c.github.io/ServiceWorker/#cache-put https://w3c.github.io/ServiceWorker/#cache-put(第 4 点)。

规范存储库中有相关讨论:https://github.com/slightlyoff/ServiceWorker/issues/693 https://github.com/slightlyoff/ServiceWorker/issues/693

ServiceWorker Cookbook 中提出了一个有趣的解决方案:https://serviceworke.rs/request-deferrer.html https://serviceworke.rs/request-deferrer.html基本上,该解决方案将请求序列化到 IndexedDB。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Service Worker 可以缓存 POST 请求吗? 的相关文章

  • 类型错误:类扩展值未定义不是函数或 null

    尝试创建这些实体时出现以下错误 TypeError Class extends value undefined is not a function or null 我假设这与循环依赖有关 但是在使用表继承和一对多关系时应该如何避免这种情况
  • 如何判断一个网页是否支持jquery?

    确定网页是否启用 jquery 的最佳方法是什么 如果这是确定它的最佳方法 则使用 jquery 本身 if jQuery jquery object exists jQuery 并不神奇 它本质上只是一个大对象 您可以像检查任何其他对象一
  • 在 jQuery .live() 方法中模拟“焦点”和“模糊”

    Update 从 jQuery 1 4 开始 live 现在支持focusin and focusout events jQuery http www jquery com currently1 doesn t support blur o
  • 使用 Firefox 插件 sdk 的 nsISocketTransportService

    我正在尝试使用 Firefox 来读取 SSH 横幅 IE 当您最初连接到 SSH 服务器时 服务器会向您发送其横幅 标识服务器软件 并且您向 SSH 服务器发送您的横幅 标识您的客户端软件 为此 我使用以下 URL 中的示例 firefo
  • 使用 jQuery Select2 清除下拉菜单

    我正在尝试使用奇妙的方式以编程方式清除下拉菜单Select2 http ivaynberg github com select2 图书馆 使用 Select2 远程 ajax 调用动态填充下拉列表query option HTML
  • 在随机位置启动 HTML5

    我有一个大约 2 小时长的音轨 我想在我的网站上使用它 我希望它在页面加载时在随机位置开始播放曲目 使用 HTML5 可以吗 我知道您可以使用 element currentTime 函数来获取当前位置 但是如何在完全下载之前获取曲目的总时
  • 水平滚动的表格上的“粘性”标题......完全不可能?

    经过过去几个小时的研究后 我开始认为这是不可能的 即使在最新的浏览器上也是如此 HTML table具有水平滚动的元素 带有 粘性 thead在顶部 作为垂直滚动的周围网页的一部分 这是我的尝试 a height 100px backgro
  • 如何在不阻止触摸启动的情况下防止“过度滚动历史导航”?

    我正在实现基于滑动的导航 但我在使用 Chrome 时遇到了麻烦 当页面向右拖动时 会触发新实现的功能 过度滚动历史导航 从而导致跳回 到 历史 1 为了防止这种情况 我必须打电话 preventDefault on touchstart
  • 这种类型注释在没有 TypeScript 的 React 代码中如何工作?

    我在看这段代码示例 https reacttraining com react router web example auth workflow在 ReactRouter 页面上 这篇文章很有趣 const PrivateRoute com
  • 检测 Google 验证码的挑战窗口何时关闭

    我正在使用谷歌隐形验证码 有没有办法检测挑战窗口何时关闭 我所说的挑战窗口是指您必须选择一些图像进行验证的窗口 目前 我在按钮上放置了一个旋转器 一旦单击按钮 就会呈现验证码挑战 无法向用户提示另一个质询窗口 我以编程方式调用渲染函数 gr
  • JS 保留以零结尾的小数[重复]

    这个问题在这里已经有答案了 在JavaScript中 是否可以 锁定 十进制数 以保留以零结尾的 浮点数 例如 我有 2 个不同的数字 如下所示 伪代码 let a 1 0 let b 1 00 a b true should be fal
  • JavaScript 将键添加到数组中的每个值

    我下面有这个数组 它由一个简单的数组组成 我想要完成的是放一把钥匙id在每个数组值前面以实现类似的效果 id a id b id c id d 有没有一种简单的方法可以做到这一点 任何帮助将不胜感激 谢谢 var test a b c d
  • 将 Firebase FCM 添加到 ReactJS 应用程序

    我正在尝试向我的 ReactJS 应用程序中的用户发送推送通知 我已添加 firebase 请求用户通知权限 这正在发挥作用 但现在我想注册设备令牌 但这给了我错误 消息传递 我们无法注册默认的 Service Worker 无法注册 Se
  • 检索 css3 缩放元素的宽度/高度

    我正在与 offsetWidth 属性的奇怪之处 我认为 作斗争 这是场景 比方说 我有一个span标签 在我的js中 在某个时刻我执行css3转换 对于这个元素 例如 el set styles transform scale scale
  • webpack中动态加载外部模块失败

    我正在尝试建立以下架构 一个核心 React 应用程序 它具有一些基本功能 并且能够在运行时加载其他 React 组件 这些额外的 React 组件可以按需加载 并且它们在构建核心应用程序时不可用 因此它们不能包含在核心应用程序的捆绑包中
  • 呃!尝试将包发布到 npm 时出现 403

    我正在尝试将包发布到 npm 您可以在此处查看存储库 https github com biowaffeln mdx state https github com biowaffeln mdx state 我登录到 npmnpm login
  • 如何动态调整jqgrid到当前窗口大小?

    如何动态调整jqgrid到当前窗口大小 基于javascript jQuery 最好的例子在这里 TinyMCE 去 http www tinymce com tryit full php http www tinymce com tryi
  • 如何为我的整个 Node.js 应用程序使用相同的 MySQL 连接?

    我有一个app js 我从那里运行我的整个应用程序 在 app js 内部 我require许多文件中都有代码 对于每个文件 我都这样做 var mysql require mysql var mclient mysql createCon
  • ThreeJS 中阴影的奇怪行为

    所以我有一个 ThreeJS 场景 并且添加了一些球体 多材质 我还添加了定向光 this light new THREE DirectionalLight 0xFFFFFF 1 this light position set 2 10 2
  • 将多维数组转换为单数组(Javascript)

    我有一个对象数组 来自 XLSX js 解析器 因此其长度和内容各不相同 表示已给予项目的资助 简化后 它看起来像这样 var grants id p 1 location loc 1 type A funds 5000 id p 2 lo

随机推荐

  • Spring Data - MongoDB - JUnit 测试

    我有一个关于 Spring Data MongoDB 和 JUnit 测试的问题 RunWith SpringJUnit4ClassRunner class SpringApplicationConfiguration classes Us
  • moqing静态方法调用c#库类

    这似乎是一个很简单的问题 但我似乎找不到关键字来影响我的搜索 我试图通过模拟此方法调用中的所有对象来进行单元测试 我可以对我自己的所有创作执行此操作 除了这个 public void MyFunc MyVarClass myVar Imag
  • Rserve 服务器:如何终止阻塞实例(评估永远)?

    我需要执行Reval以多线程的方式 这是Rserve提供得相当好 但是 如果一个实例的评估时间太长 我需要能够关闭正在计算阻塞评估的实例 据我测试 给定的实例将拒绝关闭 直到评估完成 显然 它需要在再次监听之前获取结果 所以这是我的问题 有
  • 如何使用 API 从 Google 文档中提取标题

    目前正在尝试创建一个 python 脚本来检查 google 文档的各种 SEO 页面指标 谷歌文档 API 有一个好样本 https developers google com docs api samples extract text展
  • #如果忽略 DEBUG(VB.net 或 C#)

    我的代码中有几个到目前为止运行良好的代码 If DEBUG Then some code here End If 现在 我注意到 最近 If DEBUG then End If 中的代码 也在 释放模式 下执行 这很奇怪 以前没有发生过 可
  • 显示轨迹指示器

    从图像中您可以看到 在左侧发射的球在其后面发射 与计算的轨迹不符 我使用 SO 中的方程绘制球轨迹question https stackoverflow com questions 10401644 mousejointdef libgd
  • 由于 Windows Vista Home Premium 版本缺少 Windows 身份验证 IIS 组件...有修复吗?

    显然 Windows Vista Home Basic 和 Premium 都没有附带 IIS 的集成 Windows 身份验证 您需要商业版 所以有人知道如何为 IIS 安装 Windows 身份验证吗 我进入程序和功能 gt 打开或关闭
  • 如何使用脆皮形式格式化 django-filters?

    是否可以使用 django crispy forms 格式化 django filters 过滤器表单 我一直在尝试这样做 但是django filters FilterSet似乎不接受脆脆的表单格式 来自 DeviceFilter 类 它
  • jol GraphLayout 输出中的“(其他内容)”是什么?

    当使用 jol 的 GraphLayout 类打印从对象实例引用的对象图时 某些输出条目显示 其他内容 而不是类型和引用路径 例如 考虑以下代码 该代码打印 20 个随机 Integer 对象列表的图形 List
  • 如何与我的适配器类中的片段进行通信

    我创建了一个自定义适配器类 在该类中 当我单击列表视图布局时 我有一个代码必须向我的片段发送消息 谷歌搜索后 最好的方法可能是使用界面 其中大部分都是activity与fragment之间进行通信的例子 但就我而言 我对如何在适配器类与片段
  • 将 C Struct 编组为 C# 委托的返回值

    我试图从绑定到本机函数的委托中按值返回一个小 8 字节 结构 但在针对 NET Framework 2 0 时遇到以下错误 在针对 4 0 时 代码似乎可以正常工作 testclient exe 中发生类型为 System AccessVi
  • 传递格式化的 NSDate

    我传递给实例方法的格式化日期未保存 打印正确的日期 有人可以帮忙吗 调用方法代码片段 NSDateFormatter dateFormatter NSDateFormatter alloc init autorelease dateForm
  • 卡在 PHP 查询上

    我创建了一个页面 允许用户更改密码和电子邮件 所有这些都有效 但由于某种原因 当我只想更改我的电子邮件时 我也得到了该字段当前密码不正确 电子邮件本身在数据库中发生了变化 但这显示了出来 我显然已经验证了它的显示 但我不确定如何编写一个新查
  • 如何让它更短(Pythonic)?

    我必须检查很多世界是否在字符串中 代码如下所示 if string 1 in var string or string 2 in var string or string 3 in var string or string n in var
  • 具有本机扩展的 Ruby gem 无法在 AWS Lambda 上运行

    我有一个 ruby 脚本 正在尝试在 AWS Lambda 上运行 我如何让它使用带有本机扩展的 Ruby gem 我已经通过安装了我的 Ruby gemsbundle install deployment并将它们包含在我的部署中 当我在
  • C# 更改系统区域设置

    需要将系统区域设置更改为不同的国家 地区 我尝试过 SystemParametersInfo GetKeyboardLayout 但没有帮助 如何更改控制台应用程序的 C 系统区域设置 e g Thread CurrentThread Cu
  • 更改大表中的mysql字段名称

    我有一个包含 2100 万行的表 我必须更改其中一个行名称 当我尝试使用查询 alter table company change id new id int 11 时 查询永远不会结束 有没有简单的方法来更改大mysql表字段名称 首先
  • Excel:查找数组中的最后一个值

    我有一个数据集 gt A b c d AA BB gt 1 2 3 4 gt apple apple apple gt orange pear pear apple pear gt grapefruit grape grape grape
  • Eclipse 在 Ubuntu 14.04 中无法启动

    我尝试在 Ubuntu 14 04 中启动 Eclipse 时遇到问题 启动图片弹出 然后闪烁 变成白色 直到王国来临之前什么也没有发生 我尝试过 Luna Kepler 和 3 8 来自 Ubuntu 存储库 EE 和 SE 版本 两者相
  • Service Worker 可以缓存 POST 请求吗?

    我尝试在 fetch 事件的服务工作人员中缓存 POST 请求 I used cache put event request response 但返回的承诺被拒绝TypeError Invalid request method POST 当