I try to find out if a request to a PHP file is sent by ajax or not.
I googled it and read a whole a bunch of articles that suggest following method:
Not all browsers will send that response I usually use
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') {//Do stuff }
and for ajax
request = $.ajax({
url: SomePage.php,
type: "POST",
data: {key: value}
});
request.done(function(returnedData) {
//do done stuff
});
request.fail(function(jqXHR, textStatus) {
//do fail stuff
});
Note:
$HTTP_SERVER_VARS contains the same initial information, but is not a superglobal.
(Note that $HTTP_SERVER_VARS and $_SERVER are different variables and that
PHP handles them as such). Also note that long arrays were removed since PHP 5.4.0 so
$HTTP_SERVER_VARS doesn't exist anymore.
So var_dump($HTTP_SERVER_VARS);
to see if its contained in there, also note that the $_SERVER
is filled in by the webserver