XMLHttpRequestがApacheのaccess_logに残らない

このQ&Aのポイント
  • XMLHttpRequestの通信がApacheのaccess_logに記載されず、ページビューに反映されない問題について
  • リクエストは正常に処理されているが、Apacheのaccess_logに記録されない理由について
  • XMLHttpRequestでのアクセスはアクセス数やページビューに反映されない可能性がある
回答を見る
  • ベストアンサー

XMLHttpRequestがApacheのaccess_logに残らない

XMLHttpRequestの通信がApacheのaccess_logに記載されません。 var req = new XMLHttpRequest(); req.open('GET', url); req.send(null); だけでテストしてもだめです。しかしXMLHttpRequesの返答はちゃんとできていてステータスコードも正常です。ログに入らないだけです。 これはなぜでしょう。XMLHttpRequestとはそういうものなのでしょうか。 もしそうなら、アクセス数でページビューをカウントする場合、XMLHttpRequestで閲覧した人はページビューにまったく反映されないという事になりますよね

質問者が選んだベストアンサー

  • ベストアンサー
noname#33813
noname#33813
回答No.1

当方が確認した限り、Apacheにアクセスログは残りますよ。 アクセス先のURLがApacheでない(例えばTomcatのポート)だったりしませんか?

ganwan2007
質問者

お礼

ありがとうございます。

関連するQ&A

  • XMLHttpRequest 外部ソースの取得

    外部サーバーのHTMLソースを取得することが出来ないのでしょうか? (仮)ヤフーさんの場合 var req = new XMLHttpRequest(); req.open('GET', 'http://www.yahoo.co.jp', false); req.send(null); var str = req.responseText; こちらapache(Localhost)の環境で作成しています。 XMLHttpRequest Level2との記載もあるのですが・・ 初心者ですが宜しくお願いします。

  • onunload で XMLHttpRequest

    ページを閉じたことをサーバへ伝えたいと思って、onunloadイベントで XMLHttpRequest により URLにアクセスしたいのですが、うまくいきません。 onunload の中から下記のような処理を行う関数を呼び出しています。 try{ var url = "http://xxxxxxx/unlock.php?no=99"; var xhr = XMLHttpRequestCreate(); //マルチブラウザ対応 xhr.open("GET", url); xhr.setRequestHeader("Content-Type", "text/plain"); xhr.send(null); }catch(e){ console.log(e); } xhr.status を見てみたら 0 になっていました。onunload でも、onbeforeunload でも send() を行ったあとに xhr.status が 0 になるようです。 画面上にテストボタンを置いて onclick から呼び出してみると、うまく動作します。 console.log を表示するとちゃんと表示されるので、onunload も onbeforeunload も 正しくセットされていると思います。 ブラウザは、Chrome と Firefox の2種類で試しましたが、同様でした。 やはりフォームが閉じるときは XMLHttpRequest は使えないのでしょうか? 何か回避する方法はないでしょうか?

  • XMLHttpRequestのsendメソッド

    現在以下のようにスクリプトを記述し、実行すると処理は正しく動作するのですが処理が終わるまでに5分以上かかっています。 調べてみるとsendメソッド実行時に時間がかかっているみたいなのですが原因が不明です。 どなたか同じ現象になった方はいませんでしょうか? httpRequest = new XMLHttpRequest(); httpRequest.open('GET', url, false); httpRequest.send(null);

  • apacheのアクセスログを整理

    お世話になります。 apacheのアクセスログが大きくなり、ディスクが切迫してきましたので 整理をしたいと思っています。 # cd /var/log/httpd/ # mv access_log access_log .bk # touch access_log # gzip access_log .bk # rm access_log .bk とりあえずの方法で考えていますが問題ないでしょうか? Apacheを再起動は必要でしょうか?再起動した場合、なにか利用者 から停止?が見えてしまいますでしょうか? また、恒久的にログをローテ(整理)ができますでしょうか? よろしくお願い致します。

  • apacheのログファイルがいつの間にか消える

    Redhat Linux7.0J apache_1.3.19 openssl_0.9.6b apache_1.3.19+ssl_1.44の環境で 下記のログファイルの中身が、いつの間にか 全て消えてなくなるのです。  マシンを再起動すれば、たちまちログ出力は 開始されるのですが、また気付いたら消えています。  消えるまでにどれだけの日数がかかるのかは 分かりません。サーバの再起動は3ヶ月に1回ぐらいは 実施していますが、毎回logのことを調べてはいないので どのタイミングで消えたかは全く不明です。 定期的に消えるような処理が自動的に動いているのでしょうか?(それはcronという機能のことですか?cronの設定とかよく分からないのですが現状どのようなcronが動いているか確認する手段(コマンド)はありますか?) [ログファイルは、下記のように1ファイル/1Wずつ保存されていて気付いたら中身が消えている] /usr/local/apache/logs/httpsd_access_log ・・・ /usr/local/apache/logs/httpsd_access_log.4 /usr/local/apache/logs/httpsd_error_log ・・・ /usr/local/apache/logs/httpsd_error_log.4 ログのrotationについては /etc/logrotate.d/syslogファイルに 下記を記述しています。  この記述方法が悪いのでしょうか? インストールの初期状態で自動的に記述されていた maiilogファイルなどを真似して記述したのですが 間違いがありますか? [/etc/logrotate.d/syslogファイルの記述] /usr/local/apache/logs/httpsd_access_log { postrotate /bin/kill -HUP `cat /var/run/xinetd.pid 2>/dev/null` 2>/dev/null || true endscript } /usr/local/apache/logs/httpsd_error_log { postrotate /bin/kill -HUP `cat /var/run/xinetd.pid 2>/dev/null` 2>/dev/null || true endscript }

  • apache2 ユーザ毎のログ生成は可能?

    私の利用しているレンタルサーバは、アカウント毎にapacheがはいたと思われるログファイルがあります。つまりこのログファイルはユーザのホームディレクトリ内にあり、/var/log/httpd/access.log の内容をユーザ毎に振り分けた内容です。 apacheでそのようなことをするにはどうすればよいでしょうか?

  • Apacheのログについて

    はじめまして、こんにちは。私は会社でApacehの運用管理をしているのですが、Apacheのログについて教えてください。 100Mほどのファイルが10個あって、それらの月別のダウンロード数をカウントしているのですが、たとえば「"GET /aaa/A.pdf」の数をカウントしています。 でもよくログを見てみると、同じIPアドレスから同じファイルに10秒後にアクセスしていたり、たまに約10秒ごとに4回アクセスしている形跡が残っています。例えば以下のような感じです。 [27/Mar/2006:16:47:37 +0900] "GET /aaa/A.pdf[27/Mar/2006:16:48:48 +0900] "GET /aaa/A.pdf[27/Mar/2006:16:48:54 +0900] "GET /aaa/A.pdf [27/Mar/2006:16:49:25 +0900] "GET /aaa/A.pdf これってダウンロードするのに時間がかかっていて、1つのファイルしかダウンロードしていないのに、2回カウントしたり、4回カウントしているのでしょうか? 4回続けて、10秒ごとに同じファイルをダウンロードしたりするのは不自然だと思うのですが・・・ よろしくお願いします。

  • XMLHttpRequestのブラウザ対応

    JavaScriptで、あるURLの結果を取得しようと以下のようなスクリプトを組みました。 var xmlHttp = false; function loadText(){ xmlHttp = new XMLHttpRequest(); xmlHttp.open("GET", "http://hogehoge, true); xmlHttp.onreadystatechange = checkStatus; xmlHttp.send(null); } function checkStatus(){ if (xmlHttp.readyState == 4 && xmlHttp.status == 200){ res = xmlHttp.responseText; alert(res); } } IE8では、結果が取得できたのですが、firefox4.0.1,Chromeでは取得できませんでした。 xmlHttp.status が0となってしまいました。 ただし、GET対象のURLをローカルサーバにすると、取得することができました。 firefox4.0.1,Chromeのブラウザの設定なのでしょうか?それともスクリプトの書き方に問題があるのでしょうか? すみませんが、教えてください。

  • XMLHttpRequestオブジェクトによるレスポンスを複数回受けるには?

    以下のようなコードでXMLHttpRequestを試しているのですが、 「レスポンスです。」と表示した後、 いったん違うページに遷移し、再度以下のコードを書いたページに遷移しても 「レスポンスです。」と表示されません。 var obj = new XMLHttpRequest(); obj.open("GET","/test.txt"); obj.setRequestHeader(~略~); obj.send(""); obj.onreadystatechange = function( ){   if(obj.readyState == 4){     alert(obj.responseText);   } } -------以下、test.txt-------- レスポンスです。 ----------------------------- ブラウザを閉じ、再びこのコードの書かれたページを表示すると「レスポンスです。」と表示されます。 ブラウザを閉じなくても、ページを表示する度に「レスポンスです。」と表示するにはどうすればよいのでしょうか?

  • apacheでログを圧縮&再起動を掛けたい

    長い質問ですみません。随分試行錯誤した上でまだ悩んでいます。 無料プロバイダを個人運営でやっているものなんですが、 サーバーのログをhttp.confの設定でこんな感じで作成し、 CustomLog /var/log/apache/XXX.XXX.ne.jp-access.log combined これをCSV扱いしてCGIで読み取り、解析をしています。 自動的に一週間でログの切り替えを行っている様で最初はこれでよかったのですが、アクセスが増えるにつれcgiとログファイルが非常に重くなってきました。 そこで、以下のことをしようと思っています。 cronを使えば良いのではないかと思いました。 1.一定のアクセスの少ない時刻にログ圧縮をかける (圧縮ファイルは上書きでよい。どっちみちそんなに遡っては見ないので) 2.apacheを再起動する (再起動かけないと新しいlogファイルが作成されない様なので) ちなみに手動では以下の方法で出来ました。 gzip /var/log/apache/XXX.XXX.ne.jp-access.log ps x kill プロセスID /usr/sbin/apache でも自動だと kill プロセスIDがダメなんです。 同じIDでapacheが起動してくれないので・・・。 1.apacheを一定時間に確実に再起動させる方法 2.それ以外の1日単位でログファイルの切り替えを行う方法 CGIが一定ファイルを読む仕掛けになってるので現在アクティブなファイルは 同じのままという条件で のどちらかを教えてください。 ちなみに、 http://www.rfs.co.jp/server/apache/06.html の方法はhttpd.pidがwhereisとかfind探しても見つからないという 理由により挫折してますのでこれはアドバイスしないでください。 見つける方法がわかればそれでもまあいいのですが。

専門家に質問してみよう