Side navigation
#2227 closed bug (invalid)
Opened January 23, 2008 08:54PM UTC
Closed September 28, 2010 11:28PM UTC
ajaxForm() with dataType script does not handle redirect well
Reported by: | khelenek | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | 1.2.2 |
Component: | ajax | Version: | 1.2.2 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
I added a post here:http://groups.google.com/group/jquery-en/browse_thread/thread/ef70736d93ffac90/d09bf726c2c4ccca?lnk=gst&q=ajax+redirect#d09bf726c2c4ccca
1. Create a form
2. Use the jquery forms plugin, do $('myform').ajaxForm({dataType:'script'});
3. Sumbit the form
4. Have you server return "window.location.href='jquery.com';"
5. Watch the page redirect
6. Press back button, you go back to the page *before* step 1.
The equivalent code using prototype works as expected (the browser back button returns you to the original page with the form.)
Windows XP
Firefox 2.0.0.11/IE7
Attachments (0)
Change History (3)
Changed January 23, 2008 10:23PM UTC by comment:1
Changed May 13, 2008 03:23AM UTC by comment:2
need: | Review → Patch |
---|---|
priority: | major → minor |
Changed September 28, 2010 11:28PM UTC by comment:3
resolution: | → invalid |
---|---|
status: | new → closed |
ajaxForm is a plugin and not part of jQuery core.
OK, dug into this a little deeper and it appears to be a side effect of the new globalEval() function based on andrea giammarchi's code, where a script tag is added to the node instead of using the eval() function.
To see this behavior, just go into firebug and load any page which includes jquery, and type this into the console:
$.globalEval('window.location.href="http://jquery.com"');
and you will see the history get erased. Compare to:
eval('window.location.href="http://jquery.com"');
This is kind of a dealbreaker for me since I use that functionality currently. A workaround would be great - a fix or promise of a future fix would be excellent.