Re: Ajax Error in MSIE 8
We finally dug deep enough to find the root cause of the problem. We have a corporate framework that adds a layer to Wicket for company-specific functionality. I discovered this morning that my Maven POM declared dependencies for both Wicket AND our corporate layer. This caused my app to use a different version of Wicket than our corporate layer, which caused inconsistencies. The solution was to remove the Wicket dependency from my Maven POM, thus inheriting the Wicket version our corporate layer uses. And (surprise!) the problems went away. So, not Wicket's fault. Thought you'd like to know. Thanks for the help & insight. (Slinks away with red face...) From: "Richard W. Adams" To: users@wicket.apache.org Date: 05/11/2012 11:46 AM Subject: Re: Ajax Error in MSIE 8 I just found a key difference between the IE8 & IE9 behaviors in this code: f (typeof(window.XMLHttpRequest) != "undefined" && typeof(DOMParser) != "undefined") { var parser = new DOMParser(); xmldoc = parser.parseFromString(responseAsText, "text/xml"); } else if (window.ActiveXObject) { xmldoc = t.responseXML; } On our desktops, IE9 always goes into the first part of the if block, but IE8 always goes into the second part (after the elseif). Based on Google checks, it appears this might be due to browser security settings. Do you know if any special settings are required to make IE8 work correctly? From: Martin Grigorov To: users@wicket.apache.org Date: 05/11/2012 09:56 AM Subject:Re: Ajax Error in MSIE 8 I'm not sure why this fails for you. And why it fails only from time to time. But looking at this Javascript code I think it can be improved. File a ticket with a failing test case if possible. On Fri, May 11, 2012 at 5:46 PM, Richard W. Adams wrote: > We dug into wicket-ajax.js using this version of MSIE 8: > > > > We discovered the problem occurs in this code: > > > > *Wicket.Ajax.Request.prototype = {* > > ** > *// Method that processes the request states* > *stateChangeCallback: function() {* > > *.* > > *if (status == 200 || status == "") { // as > stupid as it seems, IE7 sets status to "" on ok* > *// response came without error* > *var responseAsText = t.responseText;* > ** > > *// parse the response if the callback > needs a DOM tree* > *if (this.parseResponse == true) {* > *var xmldoc; >* > *if > (typeof(window.XMLHttpRequest) != "undefined" && typeof(DOMParser) != > "undefined") { >var parser = new DOMParser();* > *xmldoc = > parser.parseFromString(responseAsText, "text/xml"); >* > *} else if > (window.ActiveXObject) {* > *xmldoc = > t.responseXML;* > *}* > *// invoke the loaded > callback with an xml document* > * > this.loadedCallback(xmldoc); * > *} else {* > *// invoke the loaded > callback with raw string* > * > this.loadedCallback(responseAsText);* > *}* > *if (this.suppressDone == false)* > *this.done();* > *}* > > > The offending code is: > > * xmldoc = t.responseXML;* > > Looking at the contents of t (a transport object), the*transport.responseText > * field is set to the expected xml message, but* transport.responseXML*is empty and has no XML message. Unfortunately, we could not see where > transport.responseXML variable should have been set. > > Does IE8 have known ajax bugs? Or is there a configuration setting we > should be using to make this work? Or something else? We're willing to dig > into the script more, but don't know where to look, as the Ajax processing > is asynchronous & we can't simply step through the code execution. > > > > > > > From:Martin Grigorov > To:users@wicket.apache.org > Date:05/11/2012 07:26 AM > > Subject:Re: Ajax Error in MSIE 8 > ---
Re: Ajax Error in MSIE 8
On Fri, May 11, 2012 at 7:46 PM, Richard W. Adams wrote: > I just found a key difference between the IE8 & IE9 behaviors in this > code: > > f (typeof(window.XMLHttpRequest) != "undefined" && typeof(DOMParser) != > "undefined") { > var parser = new DOMParser(); > xmldoc = parser.parseFromString(responseAsText, "text/xml"); > } else if (window.ActiveXObject) { > xmldoc = t.responseXML; > } > > On our desktops, IE9 always goes into the first part of the if block, but > IE8 always goes into the second part (after the elseif). Based on Google > checks, it appears this might be due to browser security settings. Do you > know if any special settings are required to make IE8 work correctly? > The reason is that IE9 is the first that has native window.XMLHttpRequest. Before that it was an ActiveX object. > > > From: Martin Grigorov > To: users@wicket.apache.org > Date: 05/11/2012 09:56 AM > Subject: Re: Ajax Error in MSIE 8 > > > > I'm not sure why this fails for you. And why it fails only from time to > time. > But looking at this Javascript code I think it can be improved. > File a ticket with a failing test case if possible. > > On Fri, May 11, 2012 at 5:46 PM, Richard W. Adams wrote: > >> We dug into wicket-ajax.js using this version of MSIE 8: >> >> >> >> We discovered the problem occurs in this code: >> >> >> >> *Wicket.Ajax.Request.prototype = {* >> >> ** >> * // Method that processes the request states* >> * stateChangeCallback: function() { * >> >> *.* >> >> * if (status == 200 || status == "") { // as >> stupid as it seems, IE7 sets status to "" on ok* >> * // response came without error* >> * var responseAsText = t.responseText;* >> ** >> >> * // parse the response if the callback >> needs a DOM tree* >> * if (this.parseResponse == true) {* >> * var xmldoc; >> * >> * if >> (typeof(window.XMLHttpRequest) != "undefined" && typeof(DOMParser) != >> "undefined") { >> var parser = new DOMParser();* >> * xmldoc = >> parser.parseFromString(responseAsText, "text/xml"); >> * >> * } else if >> (window.ActiveXObject) {* >> * xmldoc = >> t.responseXML;* >> * }* >> * // invoke the loaded >> callback with an xml document* >> * >> this.loadedCallback(xmldoc); * >> * } else {* >> * // invoke the loaded >> callback with raw string* >> * >> this.loadedCallback(responseAsText);* >> * } * >> * if (this.suppressDone == > false)* >> * this.done();* >> * }* >> >> >> The offending code is: >> >> * xmldoc = t.responseXML;* >> >> Looking at the contents of t (a transport object), > the*transport.responseText >> * field is set to the expected xml message, but* > transport.responseXML*is empty and has no XML message. Unfortunately, we > could not see where >> transport.responseXML variable should have been set. >> >> Does IE8 have known ajax bugs? Or is there a configuration setting we >> should be using to make this work? Or something else? We're willing to > dig >> into the script more, but don't know where to look, as the Ajax > processing >> is asynchronous & we can't simply step through the code execution. >> >> >> >> >> >> >> From: Martin Grigorov >> To: users@wicket.apache.org >> Date: 05/11/2012 07:26 AM >> >> Subject: Re: Ajax Error in MSIE 8 >> -- >> >> >> >> Don't see anything suspicious. >> You'll have to debug what happens in wicket-ajax.js ... >> >>
Re: Ajax Error in MSIE 8
I just found a key difference between the IE8 & IE9 behaviors in this code: f (typeof(window.XMLHttpRequest) != "undefined" && typeof(DOMParser) != "undefined") { var parser = new DOMParser(); xmldoc = parser.parseFromString(responseAsText, "text/xml"); } else if (window.ActiveXObject) { xmldoc = t.responseXML; } On our desktops, IE9 always goes into the first part of the if block, but IE8 always goes into the second part (after the elseif). Based on Google checks, it appears this might be due to browser security settings. Do you know if any special settings are required to make IE8 work correctly? From: Martin Grigorov To: users@wicket.apache.org Date: 05/11/2012 09:56 AM Subject:Re: Ajax Error in MSIE 8 I'm not sure why this fails for you. And why it fails only from time to time. But looking at this Javascript code I think it can be improved. File a ticket with a failing test case if possible. On Fri, May 11, 2012 at 5:46 PM, Richard W. Adams wrote: > We dug into wicket-ajax.js using this version of MSIE 8: > > > > We discovered the problem occurs in this code: > > > > *Wicket.Ajax.Request.prototype = {* > > ** > *// Method that processes the request states* > *stateChangeCallback: function() {* > > *.* > > *if (status == 200 || status == "") { // as > stupid as it seems, IE7 sets status to "" on ok* > *// response came without error* > *var responseAsText = t.responseText;* > ** > > *// parse the response if the callback > needs a DOM tree* > *if (this.parseResponse == true) {* > *var xmldoc; >* > *if > (typeof(window.XMLHttpRequest) != "undefined" && typeof(DOMParser) != > "undefined") { >var parser = new DOMParser();* > *xmldoc = > parser.parseFromString(responseAsText, "text/xml"); >* > *} else if > (window.ActiveXObject) {* > *xmldoc = > t.responseXML;* > *}* > *// invoke the loaded > callback with an xml document* > * > this.loadedCallback(xmldoc); * > *} else {* > *// invoke the loaded > callback with raw string* > * > this.loadedCallback(responseAsText);* > *}* > *if (this.suppressDone == false)* > *this.done();* > *}* > > > The offending code is: > > * xmldoc = t.responseXML;* > > Looking at the contents of t (a transport object), the*transport.responseText > * field is set to the expected xml message, but* transport.responseXML*is empty and has no XML message. Unfortunately, we could not see where > transport.responseXML variable should have been set. > > Does IE8 have known ajax bugs? Or is there a configuration setting we > should be using to make this work? Or something else? We're willing to dig > into the script more, but don't know where to look, as the Ajax processing > is asynchronous & we can't simply step through the code execution. > > > > > > > From:Martin Grigorov > To:users@wicket.apache.org > Date:05/11/2012 07:26 AM > > Subject:Re: Ajax Error in MSIE 8 > -- > > > > Don't see anything suspicious. > You'll have to debug what happens in wicket-ajax.js ... > > On Fri, May 11, 2012 at 3:07 PM, Richard W. Adams wrote: > > Sorry. Should have provided more details: > > > > Wicket Version: 1.4.20 > > > > Operating System: Windows XP > > > > Scenario: Users clicks an icon with an Ajax onclick event. In the event > > handler on the server, we copy the value of one String variable to > another > > String variable in the model, then we call AjaxRequestTarget.addComponent > > twice, to update (1) the receiving text field, and (2) an associated > radio > > button. > > __ > > > > "There
Re: Ajax Error in MSIE 8
I'm not sure why this fails for you. And why it fails only from time to time. But looking at this Javascript code I think it can be improved. File a ticket with a failing test case if possible. On Fri, May 11, 2012 at 5:46 PM, Richard W. Adams wrote: > We dug into wicket-ajax.js using this version of MSIE 8: > > > > We discovered the problem occurs in this code: > > > > *Wicket.Ajax.Request.prototype = {* > > ** > *// Method that processes the request states* > *stateChangeCallback: function() {* > > *.* > > *if (status == 200 || status == "") { // as > stupid as it seems, IE7 sets status to "" on ok* > *// response came without error* > *var responseAsText = t.responseText;* > ** > > *// parse the response if the callback > needs a DOM tree* > *if (this.parseResponse == true) {* > *var xmldoc; >* > *if > (typeof(window.XMLHttpRequest) != "undefined" && typeof(DOMParser) != > "undefined") { >var parser = new DOMParser();* > *xmldoc = > parser.parseFromString(responseAsText, "text/xml"); >* > *} else if > (window.ActiveXObject) {* > *xmldoc = > t.responseXML;* > *}* > *// invoke the loaded > callback with an xml document* > * > this.loadedCallback(xmldoc); * > *} else {* > *// invoke the loaded > callback with raw string* > * > this.loadedCallback(responseAsText);* > *}* > *if (this.suppressDone == false)* > *this.done();* > *}* > > > The offending code is: > > * xmldoc = t.responseXML;* > > Looking at the contents of t (a transport object), the*transport.responseText > * field is set to the expected xml message, but* transport.responseXML*is > empty and has no XML message. Unfortunately, we could not see where > transport.responseXML variable should have been set. > > Does IE8 have known ajax bugs? Or is there a configuration setting we > should be using to make this work? Or something else? We're willing to dig > into the script more, but don't know where to look, as the Ajax processing > is asynchronous & we can't simply step through the code execution. > > > > > > > From:Martin Grigorov > To:users@wicket.apache.org > Date:05/11/2012 07:26 AM > > Subject:Re: Ajax Error in MSIE 8 > -- > > > > Don't see anything suspicious. > You'll have to debug what happens in wicket-ajax.js ... > > On Fri, May 11, 2012 at 3:07 PM, Richard W. Adams wrote: > > Sorry. Should have provided more details: > > > > Wicket Version: 1.4.20 > > > > Operating System: Windows XP > > > > Scenario: Users clicks an icon with an Ajax onclick event. In the event > > handler on the server, we copy the value of one String variable to > another > > String variable in the model, then we call AjaxRequestTarget.addComponent > > twice, to update (1) the receiving text field, and (2) an associated > radio > > button. > > __ > > > > "There are three kinds of lies: lies, damn lies, and statistics." > > Benjamin Disraeli > > > > "Then there was the man who drowned crossing a stream with an average > > depth of six inches." > > W. I. E. Gates > > > > > > > > > > From: Martin Grigorov > > To: users@wicket.apache.org > > Date: 05/11/2012 02:26 AM > > Subject:Re: Ajax Error in MSIE 8 > > > > > > > > Hi, > > > > Which version of Wicket ? > > In what conditions this happen ? I.e. do you click on a link or do you > > submit a form or ... > > > > On Thu, May 10, 2012 at 11:33 PM, Richard W. Adams > > wrote: > >> I'm getting Ajax errors that seems to occur only in Inte
Re: Ajax Error in MSIE 8
We dug into wicket-ajax.js using this version of MSIE 8: We discovered the problem occurs in this code: Wicket.Ajax.Request.prototype = { // Method that processes the request states stateChangeCallback: function() { . if (status == 200 || status == "") { // as stupid as it seems, IE7 sets status to "" on ok // response came without error var responseAsText = t.responseText; // parse the response if the callback needs a DOM tree if (this.parseResponse == true) { var xmldoc; if (typeof (window.XMLHttpRequest) != "undefined" && typeof(DOMParser) != "undefined" ) { var parser = new DOMParser(); xmldoc = parser.parseFromString(responseAsText, "text/xml"); } else if (window.ActiveXObject) { xmldoc = t.responseXML; } // invoke the loaded callback with an xml document this .loadedCallback(xmldoc); } else { // invoke the loaded callback with raw string this .loadedCallback(responseAsText); } if (this.suppressDone == false) this.done(); } The offending code is: xmldoc = t.responseXML; Looking at the contents of t (a transport object), the transport.responseText field is set to the expected xml message, but transport.responseXML is empty and has no XML message. Unfortunately, we could not see where transport.responseXML variable should have been set. Does IE8 have known ajax bugs? Or is there a configuration setting we should be using to make this work? Or something else? We're willing to dig into the script more, but don't know where to look, as the Ajax processing is asynchronous & we can't simply step through the code execution. From: Martin Grigorov To: users@wicket.apache.org Date: 05/11/2012 07:26 AM Subject:Re: Ajax Error in MSIE 8 Don't see anything suspicious. You'll have to debug what happens in wicket-ajax.js ... On Fri, May 11, 2012 at 3:07 PM, Richard W. Adams wrote: > Sorry. Should have provided more details: > > Wicket Version: 1.4.20 > > Operating System: Windows XP > > Scenario: Users clicks an icon with an Ajax onclick event. In the event > handler on the server, we copy the value of one String variable to another > String variable in the model, then we call AjaxRequestTarget.addComponent > twice, to update (1) the receiving text field, and (2) an associated radio > button. > __ > > "There are three kinds of lies: lies, damn lies, and statistics." > Benjamin Disraeli > > "Then there was the man who drowned crossing a stream with an average > depth of six inches." > W. I. E. Gates > > > > > From: Martin Grigorov > To: users@wicket.apache.org > Date: 05/11/2012 02:26 AM > Subject:Re: Ajax Error in MSIE 8 > > > > Hi, > > Which version of Wicket ? > In what conditions this happen ? I.e. do you click on a link or do you > submit a form or ... > > On Thu, May 10, 2012 at 11:33 PM, Richard W. Adams > wrote: >> I'm getting Ajax errors that seems to occur only in Internet Explorer 8 >> (same code works fine in IE9 & Firefox). I'm in a corporate environment >> where IE8 support is a requirement, so wanted to see if anyone has seen >> this before & knows of a fix. The Wicket Ajax trace is below; the parser >> says it can't find the root element in the Ajax response. We've seen > this >> same error on various pages, though it doesn't ALWAYS occur: >> >> >> INFO: focus removed from wicket-generated-id-18 >> INFO: >> INFO: Initiating Ajax GET request on >> > ?wicket:interface=:6:form:main-box:mp-form:primary-track-box:primary-icon::IBehaviorListener:1:&random=0.9122150377237917 >> INFO: Invoking pre-call handler(s)... >> INFO: Received ajax response (4130 characters) >> INFO: >> > id="successFeedback91" >>> id="errorFeedback94"
Re: Ajax Error in MSIE 8
Don't see anything suspicious. You'll have to debug what happens in wicket-ajax.js ... On Fri, May 11, 2012 at 3:07 PM, Richard W. Adams wrote: > Sorry. Should have provided more details: > > Wicket Version: 1.4.20 > > Operating System: Windows XP > > Scenario: Users clicks an icon with an Ajax onclick event. In the event > handler on the server, we copy the value of one String variable to another > String variable in the model, then we call AjaxRequestTarget.addComponent > twice, to update (1) the receiving text field, and (2) an associated radio > button. > __ > > "There are three kinds of lies: lies, damn lies, and statistics." > Benjamin Disraeli > > "Then there was the man who drowned crossing a stream with an average > depth of six inches." > W. I. E. Gates > > > > > From: Martin Grigorov > To: users@wicket.apache.org > Date: 05/11/2012 02:26 AM > Subject: Re: Ajax Error in MSIE 8 > > > > Hi, > > Which version of Wicket ? > In what conditions this happen ? I.e. do you click on a link or do you > submit a form or ... > > On Thu, May 10, 2012 at 11:33 PM, Richard W. Adams > wrote: >> I'm getting Ajax errors that seems to occur only in Internet Explorer 8 >> (same code works fine in IE9 & Firefox). I'm in a corporate environment >> where IE8 support is a requirement, so wanted to see if anyone has seen >> this before & knows of a fix. The Wicket Ajax trace is below; the parser >> says it can't find the root element in the Ajax response. We've seen > this >> same error on various pages, though it doesn't ALWAYS occur: >> >> >> INFO: focus removed from wicket-generated-id-18 >> INFO: >> INFO: Initiating Ajax GET request on >> > ?wicket:interface=:6:form:main-box:mp-form:primary-track-box:primary-icon::IBehaviorListener:1:&random=0.9122150377237917 >> INFO: Invoking pre-call handler(s)... >> INFO: Received ajax response (4130 characters) >> INFO: >> > id="successFeedback91" >>> id="errorFeedback94" >>>>>> encoding="wicket1" >>>> encoding="wicket1" >>> >> ERROR: Wicket.Ajax.Call.failure: Error while parsing response: Could not >> find root element >> INFO: Invoking post-call handler(s)... >> INFO: Invoking failure handler(s)... >> >> >> ** >> >> This email and any attachments may contain information that is > confidential and/or privileged for the sole use of the intended recipient. > Any use, review, disclosure, copying, distribution or reliance by others, > and any forwarding of this email or its contents, without the express > permission of the sender is strictly prohibited by law. If you are not > the intended recipient, please contact the sender immediately, delete the > e-mail and destroy all copies. >> ** > > > > -- > Martin Grigorov > jWeekend > Training, Consulting, Development > http://jWeekend.com > > - > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > ** > > This email and any attachments may contain information that is confidential > and/or privileged for the sole use of the intended recipient. Any use, > review, disclosure, copying, distribution or reliance by others, and any > forwarding of this email or its contents, without the express permission of > the sender is strictly prohibited by law. If you are not the intended > recipient, please contact the sender immediately, delete the e-mail and > destroy all copies. > ** -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Ajax Error in MSIE 8
Sorry. Should have provided more details: Wicket Version: 1.4.20 Operating System: Windows XP Scenario: Users clicks an icon with an Ajax onclick event. In the event handler on the server, we copy the value of one String variable to another String variable in the model, then we call AjaxRequestTarget.addComponent twice, to update (1) the receiving text field, and (2) an associated radio button. __ "There are three kinds of lies: lies, damn lies, and statistics." Benjamin Disraeli "Then there was the man who drowned crossing a stream with an average depth of six inches." W. I. E. Gates From: Martin Grigorov To: users@wicket.apache.org Date: 05/11/2012 02:26 AM Subject: Re: Ajax Error in MSIE 8 Hi, Which version of Wicket ? In what conditions this happen ? I.e. do you click on a link or do you submit a form or ... On Thu, May 10, 2012 at 11:33 PM, Richard W. Adams wrote: > I'm getting Ajax errors that seems to occur only in Internet Explorer 8 > (same code works fine in IE9 & Firefox). I'm in a corporate environment > where IE8 support is a requirement, so wanted to see if anyone has seen > this before & knows of a fix. The Wicket Ajax trace is below; the parser > says it can't find the root element in the Ajax response. We've seen this > same error on various pages, though it doesn't ALWAYS occur: > > > INFO: focus removed from wicket-generated-id-18 > INFO: > INFO: Initiating Ajax GET request on > ?wicket:interface=:6:form:main-box:mp-form:primary-track-box:primary-icon::IBehaviorListener:1:&random=0.9122150377237917 > INFO: Invoking pre-call handler(s)... > INFO: Received ajax response (4130 characters) > INFO: > id="successFeedback91" >>>> encoding="wicket1" >> encoding="wicket1" >> > ERROR: Wicket.Ajax.Call.failure: Error while parsing response: Could not > find root element > INFO: Invoking post-call handler(s)... > INFO: Invoking failure handler(s)... > > > ** > > This email and any attachments may contain information that is confidential and/or privileged for the sole use of the intended recipient. Any use, review, disclosure, copying, distribution or reliance by others, and any forwarding of this email or its contents, without the express permission of the sender is strictly prohibited by law. If you are not the intended recipient, please contact the sender immediately, delete the e-mail and destroy all copies. > ** -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org ** This email and any attachments may contain information that is confidential and/or privileged for the sole use of the intended recipient. Any use, review, disclosure, copying, distribution or reliance by others, and any forwarding of this email or its contents, without the express permission of the sender is strictly prohibited by law. If you are not the intended recipient, please contact the sender immediately, delete the e-mail and destroy all copies. **
Re: Ajax Error in MSIE 8
Hi, Which version of Wicket ? In what conditions this happen ? I.e. do you click on a link or do you submit a form or ... On Thu, May 10, 2012 at 11:33 PM, Richard W. Adams wrote: > I'm getting Ajax errors that seems to occur only in Internet Explorer 8 > (same code works fine in IE9 & Firefox). I'm in a corporate environment > where IE8 support is a requirement, so wanted to see if anyone has seen > this before & knows of a fix. The Wicket Ajax trace is below; the parser > says it can't find the root element in the Ajax response. We've seen this > same error on various pages, though it doesn't ALWAYS occur: > > > INFO: focus removed from wicket-generated-id-18 > INFO: > INFO: Initiating Ajax GET request on > ?wicket:interface=:6:form:main-box:mp-form:primary-track-box:primary-icon::IBehaviorListener:1:&random=0.9122150377237917 > INFO: Invoking pre-call handler(s)... > INFO: Received ajax response (4130 characters) > INFO: > id="successFeedback91" encoding="wicket1" >> encoding="wicket1" >> > ERROR: Wicket.Ajax.Call.failure: Error while parsing response: Could not > find root element > INFO: Invoking post-call handler(s)... > INFO: Invoking failure handler(s)... > > > ** > > This email and any attachments may contain information that is confidential > and/or privileged for the sole use of the intended recipient. Any use, > review, disclosure, copying, distribution or reliance by others, and any > forwarding of this email or its contents, without the express permission of > the sender is strictly prohibited by law. If you are not the intended > recipient, please contact the sender immediately, delete the e-mail and > destroy all copies. > ** -- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org