[Proto-Scripty] Re: IE8 responseXML ?
Hi Jason, the way you write it is good even in IE. When write onComplete: parent_response() , you launch the function at initialisation time, and the AJAX was not call, so you input is undefined. If you test alert(originalRequest) you should also have undefined. When should this be launched, then? I thought onComplete called the callback function after the entire ajax call had completed, regardless of success/failure ? In fact by writting parent_response(), it indicate that you execute the function on the creation of the AJAX request, and the retruned of the execution of the function value will be used for the onComplete. So the onComplete value will be uindefined (as you return nothing in the function). By setting parent_response, you copy the function definition to the onComplete parameter. This is the big difference. For your trouble, what is the response text of the AJAX request ?? you should check it too, in case xML was not recognize by IE and set as text. It definitely returns XML .. It's something like this : Departments ou name='foo' value='bar' / ou name='baz' value='qux' / /Departments The originalRequest in your parent_response function is in fact an response Object, go and see the API doc at http://prototypejs.org/api/ajax/response If the originalRequest.text value inside the function is your XML document, it should be a problem in header not recognize by IE. in that case, you should create an XML document by yourself with the returned text or modify header. One thougth, is it a well formed XML, beginning with xml ... asthe root tag ? it could also be a reason. To know what contain originalRequest just paste on this thread the retruned value of: $H(originalRequest).inspect(). We will have all info on that object. -- david On 17 sep, 16:56, Jason Frisvold xenopha...@gmail.com wrote: On 09/17/2009 07:14 AM, david wrote: Hi Jason, the way you write it is good even in IE. When write onComplete: parent_response() , you launch the function at initialisation time, and the AJAX was not call, so you input is undefined. If you test alert(originalRequest) you should also have undefined. When should this be launched, then? I thought onComplete called the callback function after the entire ajax call had completed, regardless of success/failure ? For your trouble, what is the response text of the AJAX request ?? you should check it too, in case xML was not recognize by IE and set as text. It definitely returns XML .. It's something like this : Departments ou name='foo' value='bar' / ou name='baz' value='qux' / /Departments The parent_response function will parse that, create what I need, and display it. The problem is, originalRequest doesn't seem to get set, or if it does, it's not by what I'm expecting. Should I call the AJAX some other way instead of via the body onload? -- david On 16 sep, 23:26, Jason Frisvold xenopha...@gmail.com wrote: Hi, I'm running into a problem with IE8 and responseXML. Code follows : var url = 'http://example.com/myfile.php'; function update_parent() { var root = 1; var myAjax = new Ajax.Request(url, { method: 'get', parameters: {parent_id: root}, onComplete: parent_response } ); } // --- function parent_response(originalRequest) { var domObj = originalRequest.responseXML; alert(domObj); } This is all fired off via a body onload='update_parent' This works perfectly in Firefox. However, in IE8, it is failing with no errors. The alert in parent_response() does not get triggered in IE8. If I change the onComplete: to read : onComplete: parent_response() Then the alert triggers, but it pops up as undefined. How do I properly handle this so it works cross-browser? ie, what object should I be sending to get to the responseXML value? Thanks, -- --- Jason Frisvold xenopha...@gmail.com --- I love deadlines. I like the whooshing sound they make as they fly by. - Douglas Adams -- --- Jason Frisvold xenopha...@gmail.com --- I love deadlines. I like the whooshing sound they make as they fly by. - Douglas Adams --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Prototype script.aculo.us group. To post to this group, send email to prototype-scriptaculous@googlegroups.com To unsubscribe from this group, send email to prototype-scriptaculous+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en
[Proto-Scripty] Re: IE8 responseXML ?
On 09/18/2009 06:43 AM, david wrote: Hi Jason, In fact by writting parent_response(), it indicate that you execute the function on the creation of the AJAX request, and the retruned of the execution of the function value will be used for the onComplete. So the onComplete value will be uindefined (as you return nothing in the function). By setting parent_response, you copy the function definition to the onComplete parameter. This is the big difference. Yes, that is a massive difference ... Thanks for the explanation ! The originalRequest in your parent_response function is in fact an response Object, go and see the API doc at http://prototypejs.org/api/ajax/response If the originalRequest.text value inside the function is your XML document, it should be a problem in header not recognize by IE. in that case, you should create an XML document by yourself with the returned text or modify header. The exact output of the program being called is follows : ?xml version=1.0 encoding=ISO-8859-1? departments ou value='1' name='Academics' / ou value='2' name='Admissions' / /departments I *think* this is valid, though it is missing a doctype header. It's a php script outputting this which we've written to send a header of: Content-type: application/xml One thougth, is it a well formed XML, beginning with xml ... asthe root tag ? it could also be a reason. I believe it's well-formed, at least to my knowledge.. To know what contain originalRequest just paste on this thread the retruned value of: $H(originalRequest).inspect(). We will have all info on that object. via IE8? It returns nothing. I tried adding: alert($H(originalRequest).inspect()); to the parent_response method and the alert never shows up when running via IE8. -- david -- --- Jason Frisvold xenopha...@gmail.com --- I love deadlines. I like the whooshing sound they make as they fly by. - Douglas Adams --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Prototype script.aculo.us group. To post to this group, send email to prototype-scriptaculous@googlegroups.com To unsubscribe from this group, send email to prototype-scriptaculous+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~--~~~~--~~--~--~---
[Proto-Scripty] Re: IE8 responseXML ?
On 09/18/2009 03:00 PM, Jason Frisvold wrote: via IE8? It returns nothing. I tried adding: alert($H(originalRequest).inspect()); to the parent_response method and the alert never shows up when running via IE8. I have discovered more.. Adding an onException block like this : function update_parent() { /** retrieve XML */ var root = 1; var myAjax = new Ajax.Request(url, { method: 'get', parameters: {parent_id: root}, onSuccess: function(response) { alert('SUCCESS: ' + response.responseText); }, onFailure: function(response) { alert('FAILURE: ' + response); }, onException: function(request,error) { alert('EXCEPTION: ' + error.message); }, onComplete: function(response) { alert('COMPLETE: ' + error.message); } } ); } ends up with IE8 popping up an EXCEPTION: Access is denied. message.. Access to what, though? -- david -- --- Jason Frisvold xenopha...@gmail.com --- I love deadlines. I like the whooshing sound they make as they fly by. - Douglas Adams --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Prototype script.aculo.us group. To post to this group, send email to prototype-scriptaculous@googlegroups.com To unsubscribe from this group, send email to prototype-scriptaculous+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~--~~~~--~~--~--~---
[Proto-Scripty] Re: IE8 responseXML ?
AHA!!! I have resolved this. We had a base element in the head of the document. Apparently this is to reference where the images/css/etc are. This causes IE8 to prevent javascript from retrieving a page due to security restrictions. I'd feel dumb about it if I didn't think this was a really poor way to secure javascript. Why they can't compare the destination domain of the request to the domain of the original HTML, I don't know. Either way, I have both resolved the problem and learned a bunch about prototype/javascript in the process. Thanks a lot, david, I really appreciate the help! -- --- Jason Frisvold xenopha...@gmail.com --- I love deadlines. I like the whooshing sound they make as they fly by. - Douglas Adams --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Prototype script.aculo.us group. To post to this group, send email to prototype-scriptaculous@googlegroups.com To unsubscribe from this group, send email to prototype-scriptaculous+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~--~~~~--~~--~--~---
[Proto-Scripty] Re: IE8 responseXML ?
Hi Jason, the way you write it is good even in IE. When write onComplete: parent_response() , you launch the function at initialisation time, and the AJAX was not call, so you input is undefined. If you test alert(originalRequest) you should also have undefined. For your trouble, what is the response text of the AJAX request ?? you should check it too, in case xML was not recognize by IE and set as text. -- david On 16 sep, 23:26, Jason Frisvold xenopha...@gmail.com wrote: Hi, I'm running into a problem with IE8 and responseXML. Code follows : var url = 'http://example.com/myfile.php'; function update_parent() { var root = 1; var myAjax = new Ajax.Request(url, { method: 'get', parameters: {parent_id: root}, onComplete: parent_response } ); } // --- function parent_response(originalRequest) { var domObj = originalRequest.responseXML; alert(domObj); } This is all fired off via a body onload='update_parent' This works perfectly in Firefox. However, in IE8, it is failing with no errors. The alert in parent_response() does not get triggered in IE8. If I change the onComplete: to read : onComplete: parent_response() Then the alert triggers, but it pops up as undefined. How do I properly handle this so it works cross-browser? ie, what object should I be sending to get to the responseXML value? Thanks, -- --- Jason Frisvold xenopha...@gmail.com --- I love deadlines. I like the whooshing sound they make as they fly by. - Douglas Adams --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Prototype script.aculo.us group. To post to this group, send email to prototype-scriptaculous@googlegroups.com To unsubscribe from this group, send email to prototype-scriptaculous+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~--~~~~--~~--~--~---
[Proto-Scripty] Re: IE8 responseXML ?
On 09/17/2009 07:14 AM, david wrote: Hi Jason, the way you write it is good even in IE. When write onComplete: parent_response() , you launch the function at initialisation time, and the AJAX was not call, so you input is undefined. If you test alert(originalRequest) you should also have undefined. When should this be launched, then? I thought onComplete called the callback function after the entire ajax call had completed, regardless of success/failure ? For your trouble, what is the response text of the AJAX request ?? you should check it too, in case xML was not recognize by IE and set as text. It definitely returns XML .. It's something like this : Departments ou name='foo' value='bar' / ou name='baz' value='qux' / /Departments The parent_response function will parse that, create what I need, and display it. The problem is, originalRequest doesn't seem to get set, or if it does, it's not by what I'm expecting. Should I call the AJAX some other way instead of via the body onload? -- david On 16 sep, 23:26, Jason Frisvold xenopha...@gmail.com wrote: Hi, I'm running into a problem with IE8 and responseXML. Code follows : var url = 'http://example.com/myfile.php'; function update_parent() { var root = 1; var myAjax = new Ajax.Request(url, { method: 'get', parameters: {parent_id: root}, onComplete: parent_response } ); } // --- function parent_response(originalRequest) { var domObj = originalRequest.responseXML; alert(domObj); } This is all fired off via a body onload='update_parent' This works perfectly in Firefox. However, in IE8, it is failing with no errors. The alert in parent_response() does not get triggered in IE8. If I change the onComplete: to read : onComplete: parent_response() Then the alert triggers, but it pops up as undefined. How do I properly handle this so it works cross-browser? ie, what object should I be sending to get to the responseXML value? Thanks, -- --- Jason Frisvold xenopha...@gmail.com --- I love deadlines. I like the whooshing sound they make as they fly by. - Douglas Adams -- --- Jason Frisvold xenopha...@gmail.com --- I love deadlines. I like the whooshing sound they make as they fly by. - Douglas Adams --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups Prototype script.aculo.us group. To post to this group, send email to prototype-scriptaculous@googlegroups.com To unsubscribe from this group, send email to prototype-scriptaculous+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~--~~~~--~~--~--~---