Serverside AjaxRequest or AjaxUpdater detections

Hi all,

This question might be a long shot, but I'm going to ask it anyway. In
my application, I've created a before_filter that does some magic. It
looks like this:

if request.xhr? then
  render :update do |page|
    page.redirect_to url_for_thingy
  end
else
  redirect_to redirect_to url_for_thingy
end

This works perfectly, however, I have one annoyance. On the server side,
I don't know if the xhr request coming in is from an AjaxUpdater or
AjaxRequest (using prototype here). It's possible that the browser will
update a DOM element or that it just expects some javascript code. When
an AjaxUpdater is used, the element is updated and the javascript is
executed (so the redirect is done), but it just doesn't look so nice.

Anyone got a solution?

Greetings,

Wouter

This works perfectly, however, I have one annoyance. On the server side,
I don't know if the xhr request coming in is from an AjaxUpdater or
AjaxRequest (using prototype here). It's possible that the browser will
update a DOM element or that it just expects some javascript code. When
an AjaxUpdater is used, the element is updated and the javascript is
executed (so the redirect is done), but it just doesn't look so nice.

You could look at the Accept header sent by the browser - in the
Ajax.Request case it should be something like application/javascript

Fred

Frederick Cheung wrote:
> You could look at the Accept header sent by the browser - in the
> Ajax.Request case it should be something like application/javascript

request.env['HTTP_ACCEPT'] has the same value for a normal GET,
AjaxUpdater or AjaxRequest..

Any other suggestions?

Hack prototype to so that one of the two sets an http header of your
choice ?

Fred