2012-10-28 64 views
1

我使用jQuery如下Ajax请求发送:“的ModSecurity:错误读取请求体”当AJAX请求是从IE

 $.ajax({ 
      url: "lastMessageIndex.php", 
      type: "POST", 
      data: {room: $("#room").val()} 
     }).done(function(data){ 
      lastMessageIndex = data; 
     }); 

我已经在我的开发环境中测试这一点,它的工作原理,我得到了服务器的预期响应,并且脚本继续运行,并且该webapp一般工作。但是,当我已经上传到我的远程服务器上,这不,在apache2的error.log中的文件,我看到的错误:

[Sun Oct 28 10:42:46 2012] [error] [client 44.46.23.50] ModSecurity: Error reading request body: Connection reset by peer [hostname "www.mysite.com"] [uri "/ie/IEGetMessages.php"] [unique_id "UI1ujNBx6w4AACW5MkkAAAAF"]

这可能不是的真正原因问题。我不介意在日志中出现错误,如果我会得到我想要的ajax的响应。它应该是一个数字,例如'4',我得到的是一个很长的字符串:“warning:mysql_fetch_array():提供的参数不是第11行中的/home/tom/mysite.com/lastMessageIndex.php中的有效MySQL结果资源”


好吧,当我编辑这个时,我解决了我的问题。实际上它很愚蠢,在我的开发环境中,mySQL数据库名称在产品上有一个大写字母。 env全是小写。

对不必要的混乱抱歉。

+0

你是否使用了错误信息?当搜索'ModSecurity:错误读取请求正文时似乎有用的信息' –

+0

@Pekka:谁说错误信息是问题?是不是在开发机器上没有给出错误的问题? – hakre

+0

不,我忘了提这个,所以我现在编辑这个问题。问题是,与我的开发环境不同,我没有从ajax获得预期的响应。 –

回答

0

解决方案很简单。您在开发服务器上看不到该错误,因为您尚未安装Mod_Security。安装它,接管与remove-system相同的配置,您也应该在开发系统上看到该错误。