You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce Blocks结账报错:woocommerce_rest_missing_nonce与500内部错误

WooCommerce Blocks(Store API)结账时的Nonce缺失及500错误问题

背景

开发一款集成WordPress核心与WooCommerce的自定义插件,仅用于扩展商品计算及购物车功能,不替换WooCommerce标准结账流程,结账页面采用WooCommerce Blocks(Store API)。

错误详情

使用Store API结账下单时出现异常,浏览器控制台及网络标签显示两种错误:

  1. 401权限错误:
{
  "code": "woocommerce_rest_missing_nonce",
  "message": "缺少nonce请求头,该端点需要有效的nonce。",
  "data": {
    "status": 401
  }
}
  1. 偶尔触发500内部服务器错误:
{
    "code": "internal_server_error",
    "message": "<p>该网站发生严重错误。</p><p><a href=\"https://wordpress.org/documentation/article/faq-troubleshooting/\">了解更多WordPress故障排除信息。</a></p>",
    "data": {
        "status": 500
    },
    "additional_errors": []
}

错误触发端点:/wp-json/wc/store/v1/checkout

已确认的环境与配置

  • WooCommerce版本:已更新至最新
  • WordPress版本:已更新至最新
  • 结账页面:使用WooCommerce Blocks(非经典短代码)
  • 页面源码中仅存在WordPress核心API的nonce变量:
var wpApiSettings = {
    "root": "https:\/\/mydomain.com\/wp-json\/",
    "nonce": "xxxxxxxxxx",
    "versionString": "wp\/v2\/"
};

页面源码中未找到wc_store_api_nonce变量

已尝试的排查操作

  • 清除所有缓存
  • 确认无自定义JS干扰结账流程
  • 启用WP_DEBUG并检查debug.log,未发现相关错误

已知认知

  • WooCommerce Blocks(Store API)要求请求携带X-WC-Store-API-Nonce请求头
  • 该nonce应通过wc_store_api_nonce变量输出在页面源码中
  • 当前错误是由于WooCommerce未输出该nonce,导致Store API请求验证失败,进而出现401或500错误

内容的提问来源于stack exchange,提问作者Dragos Petrescu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 10:42:36