Ok i have narrowed it down, when I make an ajax post the page im posting to returns a header and some data. For example if the login was successfuly I may return the session ID or something like that with a header of 200. If the login failed I may return an error code with a header of 400. Now for some reason opera does not get a responseText for anything except 200. I think this is an opera only bug as it works in every other browsers.
On Feb 2, 7:55 pm, Colin Mollenhour <[EMAIL PROTECTED]> wrote: > Opera 9.10 works fine with Prototype's Ajax.Request. However, in your > code it looks like you are checking for responseText inside the > onFailure function. Since that function is only called on failure, I > wouldn't expect there to be any responseText. I could be wrong since > honestly I never use the onFailure function... :-o It sounds like maybe > what you want to use are functions for specific failure codes, like > on404, etc.. > > If you are still having problems, I'd check two things: > > 1) The server is getting the request you think it's getting and the > browser is getting the response you think it's getting. Perhaps use a > tool like SoftX HTTP Debugger (http://www.softx.org/debugger.html) to > inspect the request and response outside the scope of the browser. > > 2) The code executed on response isn't throwing an exception. The onXXX > functions will often give no indication if there is an error in the code > that halts execution. Use some code like this to capture those exceptions: > > function getExceptionDetails(ex){ > var message = > '<b>'+ex.name+':</b><pre>'+ex.message+'</pre><br/>'+ > (ex.fileName && ex.lineNumber ? ex.fileName+' (line > <b>'+ex.lineNumber+'</b>)<br/><br/>':'')+ > (ex.description ? 'Description:<pre>'+ex.description+'</pre><br/>':'')+ > (ex.stack ? 'Stack trace: <pre>'+ex.stack+'</pre><br/>':'')+ > (ex.number ? 'Number: '+ex.number+'<br/>':'')+ > (ex['opera#sourceloc'] ? 'Location: > <b>'+ex['opera#sourceloc']+'</b><br/>':''); > return message;} > > Ajax.Responders.register({ > onException: function(request,ex){ > new > Insertion.Bottom('debug','<hr/><br/>'+getExceptionDetails(ex)+'<br/><br/>'); > } > > }); > > Colin > > [EMAIL PROTECTED] wrote: > > I have some really simple ajax code that makes a post and then reads > > the result. Now IE7 IE6 Firefox and Safari all work... however opera > > returns "" for responseText. I have tried flushing the buffer, > > different head responses etc but its just doesnt return anything... is > > this a possible bug in the new opera version (9.10)? > > > new Ajax.Request(window.location, { method: "post", > > postBody: "pageAction=login" + "&username=" + escape($ > > ("username").value) + "&password=" + escape($("password").value), > > onSuccess: function(e) { > > document.location=document.location; > > }, > > onFailure: function(e) { > > alert("tesT:" + e.responseText); > > } --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
