redirect_to results in "syntax error" for <!DOCTYPE HTML...>

Hi there,

I have a strange error:

In a controller, I have a...

   redirect_to :action => 'show'

...at the end. But upon code execution, Firebug tells me:

  syntax error   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd&quot;&gt;

(It says that for Line 0)

Does anyone have a clue what this means and where the problem lies?

Just in case: - I have also tried to use the "loose" version in the HTML code: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd&quot;&gt; But it didn't change anything. - redirect_to a different :action works.

Thank you for any help with this! Tom

Hi there,

I have a strange error:

In a controller, I have a...

redirect_to :action => 'show'

...at the end. But upon code execution, Firebug tells me:

Sounds like you redirected to an html page but your stuff on the page was expecting to get some javascript back (ie you were using link_to_remote etc.. without an :update option)

Fred

Thanks for your (actually super-quick) reply, Fred!

To paraphrase it (correct me if I'm wrong):

Whenever an Ajax request is sent (i.e. using submit_to_remote) the "rendering part" in the controller can NOT use "redirect_to :action => ..." or "render :action => ...".

Rendering the response can in this case only be done using:

render :update do |page| page.replace_html 'whatever', :partial => 'whatever' end

"redirect_to" and "render" can only be used after "regular" requests.

It depends on whether link_to_remote, submit_to_remote etc... have
been passed the :update option.

- if they have then they are updating an element on the page and you
need to generating a normal html fragment - if they are not then they are expecting javascript, so using
render :update and so on is compulsory.

Fred

Ok, thanks!