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.
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
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 ?