为使用缓存插件的网站,出现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小时。这样应该就可以了。