Re: Problem detecting an Ajax request
- From: Erwin Moller <since_humans_read_this_I_am_spammed_too_much@xxxxxxxxxxxxxxxx>
- Date: Thu, 23 Nov 2006 12:07:46 +0100
Simon wrote:
I have the following code in Javascript which is creating and sending
an XMLHttpRequest .
<code>
var xmlHttp;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
@end @*/
alert(xmlHttp);
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
// Build the URL to connect to
var url = "getURL.php";
// Open a connection to the server
xmlHttp.open("GET", url, true);
// Setup a function for the server to run when it's done
xmlHttp.onreadystatechange = updatePage;
// Send the request
xmlHttp.send(null);
</code>
The problem I am having is server side where I am trying to detect an
Ajax request.
I have the folowing function isAjax() which is returning false:
<code>
<?php
if(isAjax()){
echo "This is an Ajax request";
}
else{
echo "Not Ajax";
}
function isAjax() {
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
$_SERVER ['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
}
?>
</code>
Can someone tell me why isAjax() is failing here?
No I cannot, but why make life harder than needed?
Why rely on headers that may be filtered away or are not send by every
implementation of the Object?
If you want to tell if the request originated from AJAX, just add that to
the URL, that is 100% foolproof (I think).
Like:
var url = "getURL.php?originatedFromAjax=Y";
And simply check for it:
if (isset($_GET["originatedFromAjax"])){
// from AJAX
} else {
// Not from AJAX
}
Regards,
Erwin Moller
.
- Follow-Ups:
- Re: Problem detecting an Ajax request
- From: Simon
- Re: Problem detecting an Ajax request
- References:
- Problem detecting an Ajax request
- From: Simon
- Problem detecting an Ajax request
- Prev by Date: Re: Why ini_set( "short_open_tag", 1 ) didn't work?
- Next by Date: Re: directory permissions
- Previous by thread: Problem detecting an Ajax request
- Next by thread: Re: Problem detecting an Ajax request
- Index(es):
Relevant Pages
|