Hi all!
I stumbled on this problem while testing StatusNet for our next release; we use jquery.form's .ajaxForm() to do various AJAX form submissions, including the primary message-sending form which includes a file upload control.
We've not seen problems before, but since upgrading from an old Form plugin version 2.17 to 2.49 a couple months ago, I've noticed our development branch no longer works properly in Opera: the actual submission goes fine, but we're unable to access the XML return data (which usually contains HTML fragments to put back into the UI).
I have a test case which demonstrates this at
http://leuksman.com/misc/optest (source of the main page & submit handler are included there), using current jQuery 1.4.4 and jquery.form 2.52.
Under Firefox 4.0b10 and other browsers, the forms submit correctly, and we can read nodes and text out of the returned XML just fine.
But on Opera 11.00 and 10.63, the submission goes through but we get back an HTML document containing only "<head></head><body></body>". On Opera 9.63, it also includes the text "Blank page."
I tried to trace this down in jquery.form's history, and the trouble seems to have started around 2.39 with a commit ironically titled "iframe load fix (mostly for Opera)", which changes the event handling for forms submitted via iframe: from that version on, a 'load' event handler is added directly as an onload attribute on the iframe's source, whereas previously it was added with attachEvent or addEventListener.
It looks to me like the iframe is throwing a load event for the "about:blank" page, instead of for the submission.
I can revert back to 2.17 or another working version for now, but I'd like to make sure this is fixed upstream; any ideas on what kind of side effects might be causing this and how to tweak it around? Thanks!