跳到主内容
版本: 2.x

HOST151:缓存向不同用户返回相同数据

这意味着什么​

主机缓存可能将一个人的店铺数据返回给另一个人。

此设备上的数据没有丢失。请主机服务商停止缓存店铺 API(包括 /wp-json/ 和 ?rest_route= 两种地址)。如果 WCPOS 未能连接,请在处理后重新连接。

缓存层在返回已存储的 REST API 响应时,没有核对请求者的身份:应用发送了两个使用不同身份认证信息的探测请求,却两次都收到了第一个请求的响应。对于营业中的店铺,这意味着一名收银员可能看到另一名收银员的数据。这是主机层的问题;WordPress 本身始终按用户返回响应。

发生这种情况时,应用会重试,并在每个请求中附带唯一的缓存键。如果验证表明该键可以绕过缓存,WCPOS 就会建立连接,并继续发送此键;此时,这条记录是提醒您仍需修复缓存的警告。如果无法确认连接安全,WCPOS 会在缓存修复前保持断开。

您的数据​

此设备上的数据没有丢失。如果 WCPOS 无法确认连接安全,就不会连接,以免将一个人的数据显示给另一个人;设备上已有的数据会保留,并在连接成功后发送。

故障排除​

供主机服务商或网站管理员处理——即使 WCPOS 已绕过缓存成功连接,也必须在主机上修复缓存:

  1. 将店铺的 REST API 路径(/wp-json/ 和 /?rest_route=)排除在页面缓存之外:在 LiteSpeed 上禁用 REST 缓存或添加不缓存规则;在 WP Engine 上将 WooCommerce 的排除范围扩展到 /wp-json/wcpos 及 ?rest_route= 形式的地址;在 Sucuri 上将缓存级别设置为遵循 Cache-Control。
  2. 店铺 API 已经发送了 Cache-Control: no-store 和 Vary: Authorization,但缓存层忽略了它们;请提醒主机服务商检查这些响应头。
  3. 修改缓存设置后,请清空缓存。如果 WCPOS 未能连接,请重新连接。

详细信息​

代码
HOST151 (CACHE_SHARED_REPLAY)
严重性
error
引入版本
WCPOS 1.10.0