前言:
啊,今天在帮人解决关于IRO主题设置保存报错:
function(){return u(n),r.apply(this,arguments)}
的时候,我在之前遇到的情况下,对使用宝塔的服务器添加了白名单,但是依旧不行。
障碍分析:
-
尝试看控制台,返回是“404”状态码,这可不太对劲。
-
跑去看了看伪静态,正常的伪静态,不应该返回404的。
-
百思不得其解的时候,发现浏览器的IP提示和服务器IP不一样,询问发现确实用了CDN。
-
手动回源,没问题,源站OK,正常POST传入,正常的response:200
-
确定CDN问题了
进一步分析:
-
查看cdn缓存,UCLOUD的控制台可以配置的是真的少,转了一圈,就吧wp-admin/admin-ajax.php 白名单了【是真的没啥可以设置的了!!!!】
-
刷新缓存,依旧报错,CDN的问题没找到。
-
找官方协助,官方说是POST的请求,然后给我看了POST和GET的结果。
-
没找到问题,正常直接POST和GET的回执是正常的,我说是携带了参数和数据的,只有正常携带了才会正常。
-
官方给了个提醒,POST限制16KB, What?才16KB?疑似问题发现。
-
手动获得POST的data数据,一看,16.03KB,加上其他仪器传递的数据一起,18.11KB,漂亮,超过了。
-
尝试和UCLOUD技术支持询问是否能提高,回答:否。
-
核对是否是这个问题,最后发现:是
结案:
UCLOUD的POST请求最多16KB,市面上很多的收费wordpress主题不支持【因为他们设置项很多,传递的data数据也不小,POST很容易超过16KB】+设置选项多的免费主题不支持。
UCLOUD的机制是,超过了请求就直接返回404,造成客户端报错,服务端根本没收到这次POST请求。
总结:
适当远离UCLOUD的加速~~~~~