-
1. Re: suggestionBox works on Firefox, but not IE
spheenik Oct 30, 2008 4:42 AM (in response to spheenik)Ok, I have an update. I noticed that IE 7 would not succeed in any Ajax-Request, so I put a a4j:log component in, and this is what I get:
... debug[9:31:46,685]: Reqest end with state 4 debug[9:31:46,685]: Response with content-type: text/html;charset=ISO-8859-1 debug[9:31:46,685]: Full response content: [REMOVED] debug[9:31:46,685]: Header Ajax-Response not found, search in <meta> debug[9:31:46,685]: Header Ajax-Expired not found, search in <meta> warn[9:31:46,685]: No ajax response header debug[9:31:46,685]: Header Location not found, search in <meta> debug[9:31:46,685]: replace all page content with response debug[9:31:46,685]: setup custom document.open method debug[9:31:46,700]: exception during write page content undefined error[9:31:46,716]: Error parsing responseXML Parsing Error: DTD ist nicht zulaessig. Location: Line Number 2, Column 11: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > -----------^ debug[9:31:46,716]: page content has been replaced
There are 2 things that are different than in Firefox: It says it did not find an ajax response header (why is that?), and then fails to accept the document's DTD.
If I remove the doctype declaration completely, the request seems to go through, however, it does not show the suggestion box, but removes all content from the page, so I am left there with a completely empty page, so I even cannot look at the a4j:log-output :( That's probably because of the inability to find the ajax response header? -
2. Re: suggestionBox works on Firefox, but not IE
spheenik Oct 30, 2008 6:13 AM (in response to spheenik)And I dug a little deeper:
I now tried richfaces 3.3.0-SNAPSHOT from 17.10.2008, and richfaces 3.1.6.GA, all giving the same result. If I remove the doctype declaration, I see the a4j:log output for a split-second, and then I have an empty page -- IE shows me it had a javascript error ("Type mismatch", line 85, char 452, you gotta love IE's error messages!). When putting the doctype in, I get the "me no want this doctype"-error.
I tried to configure different a4j-filters (NEKO, TIDY), but somehow the results are always the same. I use richfaces with Seam 2.0.1.GA, do I have to configure filters differently in this case?
I did it with:<context-param> <param-name>org.ajax4jsf.xmlparser.ORDER</param-name> <param-value>TIDY</param-value> </context-param>
No difference if I put NEKO there...
Oh my, this stuff leaves me disheartened. -
3. Re: suggestionBox works on Firefox, but not IE
nbelaevski Oct 30, 2008 7:50 PM (in response to spheenik)Hi,
That usually happens if ui:composition tag is missing so that included pages bring repeated DTDs into view. -
4. Re: suggestionBox works on Firefox, but not IE
spheenik Oct 31, 2008 4:42 AM (in response to spheenik)Hi nbelaevski,
thanks a lot for your answer.
However, in my testcase there are no composition tags, I intentionally stripped it down to the bare minimum. The test.xhtml file looks like this:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:rich="http://richfaces.org/rich" xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Audi</title> </head> <body> <h:form> <h:inputText id="rolesuggest" value="#{authenticator.roleToAdd}" /> <rich:suggestionbox for="rolesuggest" suggestionAction="#{authenticator.autocompleteRoles}" var="item" minChars="4" ajaxSingle="false"> <h:column>#{item}</h:column> </rich:suggestionbox> <a4j:status startText="Progress" stopText="Done"/> </h:form> <hr/> <a4j:log level="ALL" popup="false" width="800" height="500"/> </body> </html>
With this, the a4j:log says, that IE didn't like the doctype (DTD was not allowed). If I remove the doctype definition, the request completes, but the page I get is all empty. I have this weird behaviour not only with the suggestionbox, but with other ajax-calls as well. They all don't work correctly on IE. I just noticed that the detected content encoding is iso8859, would that be problematic if I send UTF-8? -
5. Re: suggestionBox works on Firefox, but not IE
spheenik Oct 31, 2008 7:26 AM (in response to spheenik)I noticed some other WEIRD behaviour:
a4j:log from Firefox:debug[12:08:53,663]: Start XmlHttpRequest debug[12:08:53,664]: Reqest state : 1 debug[12:08:53,664]: QueryString: AJAXREQUEST=_viewRoot&j_id2=j_id2&j_id2%3Arolesuggest=aaaa&j_id2%3Aj_id3_selection=&javax.faces.ViewState=j_id3&j_id2%3Aj_id3=j_id2%3Aj_id3&inputvalue=aaaa& debug[12:08:53,673]: Reqest state : 1 debug[12:08:55,967]: Reqest state : 2 debug[12:08:55,968]: Reqest state : 3 debug[12:08:55,969]: Reqest state : 4 debug[12:08:55,969]: Reqest end with state 4 debug[12:08:55,969]: Response with content-type: text/xml;charset=UTF-8 debug[12:08:55,970]: Full response content: (removed)
a4j:log from IE 7:debug[12:21:33,960]: Start XmlHttpRequest debug[12:21:33,960]: Reqest state : 1 debug[12:21:33,975]: QueryString: AJAXREQUEST=_viewRoot&j_id2=j_id2&j_id2%3Arolesuggest=aaaa&j_id2%3Aj_id3_selection=&javax.faces.ViewState=j_id3&j_id2%3Aj_id3=j_id2%3Aj_id3&inputvalue=aaaa& debug[12:21:34,084]: Reqest state : 2 debug[12:21:34,084]: Reqest state : 3 debug[12:21:34,084]: Reqest state : 4 debug[12:21:34,084]: Reqest end with state 4 debug[12:21:34,084]: Response with content-type: text/html;charset=UTF-8 debug[12:21:34,084]: Full response content: (removed)
The content type of what get's sent back to IE is text/html, while Firefox gets text/xml. Also, the full response content that I see differs a lot. While the context in Firefox looks like it is only a "difference", meaning it only shows elements to update, the content in IE looks like it a normal non ajax-response. Also the action method is not called during the IE request. So it seems like something on the server side doesn't recognize the request as an ajax request? -
6. Re: suggestionBox works on Firefox, but not IE
nbelaevski Nov 2, 2008 3:38 PM (in response to spheenik)I've tried your code, works fine for me. I guess that this is Seam forwarding to another page due to error. Can you please try to use not an authentificator component but a specially created bean?
-
7. Re: suggestionBox works on Firefox, but not IE
fausto72 Nov 25, 2008 3:16 AM (in response to spheenik)Hi Spheenik,
we have the same problem, did you find out how to solve it?
Thank you in advance for any help/suggestion,
Fausto -
8. Re: suggestionBox works on Firefox, but not IE
fausto72 Nov 25, 2008 6:55 AM (in response to spheenik)Solved: we had 2 nested h:form tags, simply removed the internal one and now the suggestion box is working on internet explorer, too.