次のようにjqueryを使用してajaxリクエストを送信しています:
$.ajax({
url: "lastMessageIndex.php",
type: "POST",
data: {room: $("#room").val()}
}).done(function(data){
lastMessageIndex = data;
});
私はこれを開発環境でテストしましたが、機能し、サーバーから期待される応答が得られ、スクリプトが続行され、Webアプリは一般的に機能します。しかし、リモートサーバーにアップロードした場合、アップロードされません。apache2error.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」などの数値である必要があり、取得するのは長い文字列です。「警告:mysql_fetch_array():指定された引数は/home/tom/mysite.com/lastMessageIndex.phpの有効なMySQL結果リソースではありません。 11行目」
OK、これを編集している間に問題を解決しました。実際、私の開発環境では、mySQLデータベース名のprodに大文字が付いています。envそれはすべて小文字です。
不必要な混乱でごめんなさい。