Javascript mod_安全日志报告缺少用户代理并阻止Ajax请求403,但用户代理存在

Javascript mod_安全日志报告缺少用户代理并阻止Ajax请求403,但用户代理存在,javascript,angularjs,ajax,user-agent,mod-security,Javascript,Angularjs,Ajax,User Agent,Mod Security,从日志中,我得到错误: ModSecurity:访问被拒绝,代码403(第2阶段)。 运算符EQ在请求_头上匹配了0。 [msg“请求缺少用户代理标头”][严重性“通知”] [标记“OWASP\U CRS/协议违反/缺少\U头\U UA”] 但是,当我签入网络>XHR选项卡时,会出现标题: 用户代理:Mozilla/5.0(Windows NT 6.1;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/55.0.2883.87 Safari/53

从日志中,我得到错误

ModSecurity:访问被拒绝,代码403(第2阶段)。 运算符EQ在请求_头上匹配了0。 [msg“请求缺少用户代理标头”][严重性“通知”] [标记“OWASP\U CRS/协议违反/缺少\U头\U UA”]

但是,当我签入网络>XHR选项卡时,会出现标题:

用户代理:Mozilla/5.0(Windows NT 6.1;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/55.0.2883.87 Safari/537.36

我使用标准AngularJS:

const ajax = function(data, url, completeFn, errorFn){
$http({
  method: 'POST',
  url: url,
  data:data,
  headers:{
    'Accept': "application/json",
    'Content-Type': "application/json"
  }
})
.then( completeFn, errorFn );}
后来被

this.select_all = function( callback ){
 ajax({action: 'select_all'}, url, 
    function(response){
      self.allFolders = response.data;
      if(callback){ callback(response); }
    }, 
    defError
 );}
我正在使用mod_重写规则:

<IfModule mod_rewrite.c>
  RewriteEngine On
  Options FollowSymLinks
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ /webpage/#/$1 [L]
</IfModule> 

重新启动发动机
选项如下符号链接
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$/网页/#/$1[L]

当我完全禁用mod_安全时,一切都正常工作。但我不确定我是否想这样做。我在谷歌上搜索了两个小时,找不到关于类似问题的任何信息。我一定是做错了什么。这应该怎么做

标题是否在审核日志中?你也能给出规则配置吗?它似乎在根据您提供的日志摘录检查任何请求头。我只有HTTP访问日志,从中我发布了错误,但没有头。我不确定它们是否应该在那里可见。我对服务器设置的访问非常有限。只有很少的选择。错误看起来就像前面提到的那个样,根本并没有标题……同时在chrome中,我可以看到请求中的所有标题。我想我所能做的就是在不知道当前设置的情况下向.htaccess文件写入一些内容。如果没有这些设置,调试将非常困难。建议您向具有该权限的人寻求帮助。老实说,我怀疑上面的错误消息是否与您的请求有关。顺便说一句,我怀疑您的请求被另一条与缺少的UA规则无关的规则阻止。是的,看起来是这样的。因为我在互联网上找不到类似的问题。我一定是找错地方了。感谢您的回复:)