【PHP】Ajaxによる通信(リクエスト)かどうか判定する方法
リクエストのログを記録していくときにjQueryのajax通信を使う場合は除外したかったので、サーバー側で判別する方法を調べたメモ。
環境変数のHTTP_X_REQUESTED_WITHを見れば分かるみたい。サーバーサイド(PHP)のサンプルコードは下のような感じ。
/** * Ajaxによるリクエストかどうか * * @return boolean True or False */ public function isAjax() { if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){ return true; } return false; }
これで判断できるのはjQueryがajax通信をするときのリクエストヘッダー「X-Requested-With」に「XMLHttpRequest」をセットしてくれているから。
ちなみにリクエストヘッダーを見る場合は、Firefoxのアドオン「LiveHTTPHeaders」が便利。
<関連記事>