=============================================================================== don't forget that you can easily spoof any header with cURL like so curl_setopt($ch,CURLOPT_HTTPHEADER,array("X-Requested-With : XMLHttpRequest")); =============================================================================== function isXmlHttpRequest() { $header = isset($_SERVER['HTTP_X_REQUESTED_WITH']) ? $_SERVER['HTTP_X_REQUESTED_WITH'] : null; return ($header === 'XMLHttpRequest'); } // example - checking our active call if(!isXmlHttpRequest()) { echo 'Not an ajax request'; } else { echo 'is an ajax request'; }