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

通过REST API删除WordPress自定义文章类型报403、nonce无效错误如何解决?

故障排查解决方案
  • 校验nonce生成逻辑:WordPress REST API要求nonce必须通过wp_create_nonce( 'wp_rest' )函数生成,action参数必须固定为wp_rest,如果你生成nonce时用了自定义的action值,会直接导致校验失败。你可以先打印输出universityData.nonce的值,和PHP端生成的正确值做对比,确认传递没有问题。
  • 测试nonce传递方式:部分服务器、CDN或反向代理会过滤自定义请求头,你可以尝试把nonce作为URL参数传递,修改请求URL为universityData.root_url + '/wp-json/wp/v2/note/98?_nonce=' + universityData.nonce,看是否能请求成功,如果可以说明你的环境存在请求头过滤规则,需要调整服务端配置放行X-WP-Nonce请求头。
  • 检查用户登录状态与cookie有效性:REST API的nonce和当前登录用户的cookie是强绑定的,发起请求时如果用户已经退出登录、cookie过期,或者站点的域名/协议(http/https、带/不带www)和后台配置的站点地址不一致,都会导致cookie匹配失败。你可以先清除浏览器缓存和cookie,重新登录WordPress后再测试。
  • 排查缓存影响:nonce默认有效期为24小时,如果你的站点开启了静态缓存(如WP Rocket、W3 Total Cache等插件),缓存的页面中会包含过期的nonce,或者非登录用户的无效nonce。你可以临时禁用所有缓存插件,或者将包含该操作的页面排除出缓存规则后再测试。
  • 跨域场景特殊配置:如果你的前端页面和WordPress站点不在同一个域名下,需要在ajax请求中增加配置携带cookie:
$.ajax({
  // 原有配置不变
  xhrFields: {
    withCredentials: true
  },
  crossDomain: true
})

同时需要在WordPress服务端配置跨域规则,允许跨域请求携带凭证。

  • 禁用安全类插件测试:Wordfence、iThemes Security等安全插件经常会拦截REST API请求,或修改nonce校验逻辑,你可以临时禁用所有安全插件,逐一排查是否有插件干扰了正常的nonce校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:09:00