|
Posted by Simon on 11/26/06 07:36
I found the answer, the Ajax request object has to have a custom HTTP
header. See the following link for more details:
http://www.sitepoint.com/print/painless-javascript-prototype
On Nov 24, 12:07 am, Erwin Moller
<since_humans_read_this_I_am_spammed_too_m...@spamyourself.com> wrote:
> 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 todetectan
> >Ajaxrequest.
> > I have the folowing function isAjax() which is returning false:
>
> > <code>
> > <?php
>
> > if(isAjax()){
> > echo "This is anAjaxrequest";
> > }
> > else{
> > echo "NotAjax";
> > }
>
> > 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 fromAJAX, 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"])){
> // fromAJAX
>
> } else {
> // Not fromAJAX
> }Regards,
> Erwin Moller
Navigation:
[Reply to this message]
|