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添加到排除路径:
WordPress缓存插件引出admin-ajax.php 403的解决方案。
如果您使用的是诸如WP最快缓存或WP超级缓存之类的缓存插件,您可以设置一个时间来自动清空缓存。比如WP最快缓存可以在【删除缓存】选项卡上按照下图添加一个规则:每10小时清空所有缓存。
WordPress缓存插件引出admin-ajax.php 403的解决方案。
不会引入其他缓存插件。简单来说就是找到自动清理缓存的设置选项,将自动清理缓存的时间设置为不超过12小时,应该就够了。