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 小时,应该就够了。