echo $_SERVER['HTTP_X_REQUESTED_WITH'];
Что вы ожидаете от такого кода? Предположим, вы запускаете его прямо из браузера, не используя AJAX-запрос. Итак, как же этот заголовок может быть установлен?
Ну, ответ на главный вопрос жизни, Вселенной и всего остального - HTTP-сниффер ! Получите один и забудьте распечатать переменную $ _SERVER.
У Firebug есть один, или вы можете использовать HTTP-прокси Fiddler или плагин LiveHTTPHeaders Mozilla. Мне скучно делать ссылки, но это легко гуглил.
Итак, с помощью сниффера HTTP вы можете быть уверены в любом заголовке HTTP.
Обратите внимание, что вы не можете предотвратить любой «прямой доступ» с помощью XHR, поскольку каждый HTTP-запрос к вашему серверу уже является «прямым».