Since the Ajax call in the background, you need to perform the
redirect with JavaScript, so the easiest way would be for you to use
inline RJS in your controller like follows:
def target_list_add
render :update do |page|
page.redirect_to( :action => ‘target_list_upload’)
end
end
You’ll need Edge Rails or the RJS plugin to do that, though.
If you don’t want to use RJS, you could do it the long way like this:
Can you go into more detail on what “Since the Ajax call in the
background” means?
I do understand Ajax conceptually, but I’m trying to understand the
nature of a HTTP response in an Ajax context.
Is the root of my issue that there is no HTTP response to give back to
the browser and that is why the Ajax.Request + controller redirect
doesn’t render anything?
Thanks,
Wes
Cody F. wrote:
Wes,
Since the Ajax call in the background, you need to perform the
redirect with JavaScript, so the easiest way would be for you to use
inline RJS in your controller like follows:
def target_list_add
render :update do |page|
page.redirect_to( :action => ‘target_list_upload’)
end
end
You’ll need Edge Rails or the RJS plugin to do that, though.
If you don’t want to use RJS, you could do it the long way like this:
Is the root of my issue that there is no HTTP response to give back to
the browser and that is why the Ajax.Request + controller redirect
doesn’t render anything?
The HTTP request was made by the XMLHTTP component (or equivalent), and
the XMLHTTP component handles the resulting HTTP response.
If the response specifies a redirect, it is the XMLHTTP component that
should be trying again at the redirect address - not the browser.
Wes, the root of the issue is that what you get back from your request
needs
to be processed by javascript to be actioned upon. You only get XML data
back and your browser will not process it unless told to do that. This
is
what Cody meant by “call in background”.
Therefore, if you want to do a conditional redirect you need to analyze
received data and if it meets required cretirea do a javascript
redirect.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.