互联网技术 · 2024年3月3日

解决WordPress缓存插件导致admin-ajax.php 403错误的方法

admin-ajax.php 是 WordPress 用于Ajax请求的必需文件,在使用缓存插件的情况下,如果你的网站使用了Ajax请求网站数据,可能会时不时出现 admin-ajax.php 403 的情况,怎样确定 admin-ajax.php 403 是不是因为缓存插件导致的呢?

后台缓存插件中清空缓存,然后到浏览器中随便访问网站的一个页面,F12 打开调试模式。

Ctrl + F5 强制刷新前台页面,发现 admin-ajax.php 可以正常加载,说明是缓存导致了问题。

联想到通常使用Ajax时,我们都会使用 WordPress 内置的Nonce机制来添加请求安全验证。如果Nonce的值失效了,但是缓存仍在,就会出现请求被拒绝。

Nonce 的默认有效期为24小时,所以,解决该问题的办法就是定时清空缓存,或者不要缓存admin-ajax.php请求。

比如,如果你使用的是 WP Rocket 缓存插件,可以将 /wp-admin/admin-ajax.php 添加到排除路径中:

如果使用的是 WP Fastest Cache 或 WP Super Cache 等缓存插件,可以设置一个时间自动清空缓存,比如 WP Fastest Cache 可以在【删除缓存】选项卡按照下图添加一个规则:每10小时清空一次全部缓存。

其他缓存插件就不介绍了,总之就是找到自动清理缓存的设置选项,设置自动清理缓存的时间不超过12小时,应该就可以了。

文章来源:白天博客

来源地址:https://www.seobti.com/2961.html

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册