当我们用jQuery进行Ajax请求时,可能遇到防火墙验证过期的问题,因此需要监听Ajax请求结果,当结果出现防火墙验证的信息时进行整页刷新。
// 监听所有Ajax请求的完成
$(document).ajaxComplete(function(event, xhr, settings) {
var responseData = xhr.responseText;
// 检查响应内容是否是宝塔或Cloudflare防火墙验证内容
if (
responseData.includes("<title>检测中</title>") || // 宝塔防火墙验证内容
responseData.includes("<title>Just a moment...</title>") // Cloudflare防火墙验证内容
) {
// 刷新整个页面以完成验证
location.reload();
}
});
当然,为了不让返回错误的结果造成代码报错而无法成功监听,需要将Ajax请求的dataType设置为json。