I’m building a Django site and trying to use the request.is_ajax() function… But it’s only working locally and it’s driving me crazy!
I’m at the point where I’ve just dumped the headers. Here (on the django test server) there’s HTTP_X_REQUESTED_WITH but on the production server (cherokee+scgi) all I get is X-Requested-With.
I’ve used firebug to snoop the sent headers and it’s X-Requested-With (on both versions of the site). I’m very, very confused. Can anybody explain what’s happening and how I can work around it without losing my mind?
wrt/ the X-Requested-With => HTTP_X_REQUESTED_WITH stuff, it’s in conformance with the CGI specifications. Since FastCGI, SCGI and WSGI are all based on the CGI specs, Django developpers choosed to stick to this convention (FWIW, the ModPythonRequest class do the same rewrite for consistency).
So it seems that your problem is that something in the cherokee/scgi chain doesn’t rewrite the headers correctly. Which scgi implemetation are you using ?