Forum Moderators: open
I have been developing a "client submits form data then server responds" type of application using J2EE. The responses to http requests are generated dynamically from xml where the xml is transformed into html on the server-side NOT by the client browser.
The content generated by the application is displayed inside an iframe that itself is an element of a static page. In general this works well in both Firefox and MSIE 6. The problem arises when the content displayed inside this parent iframe is itself an iframe, ie. nested iframes. Using MSIE there is no problem if I use the "GET" method to submit form data. However, if I use the "POST" method, the request from the nested frame never reaches the application on the server. This problem does not occur under Firefox.
This smells like a browser problem - behaviour is altered by simply changing the method of submission. I have seen a related issue:
[support.microsoft.com...]
however, as stated above, I already "perform a server-side transformation of the XML page".
I have also run my application for the case where the form actions are static html files. In this case the symptoms described above do not occur. Could this then be an application server problem?
TIA,
DrJ
Strange one. I've seen web applications that use nested iFrames that round trip to a server using POST without trouble.
What application server are you using. While initially it does smell like a browser quirk there may be something more going on here.
Does the form fire any other action? Something in the parent iFrame? Or is the submission of the form the only action going on? Any client side script happening?
The problem appears when I am using the embedded server under JDeveloper which I believe is Orion. To determine if this was a server problem I (eventually) deployed to JBoss yesterday and the problem disappeared. While doing this I realised that the problem actually happened with either GET or POST and it was just that the only POST method in my app was also invoked by the form that requested the nested iframe.
I have actually worked out a solution for the embedded server but it is a real hack. :( All I did was duplicate the servlet that handled client requests, gave it a different mapping in web.xml and made this the target of any client request that required the nested frames to be used. This is what the container is supposed to do already, no? <fume mode="quietly"/>
It almost smells like a race condition on the app server. The fault is so recondite that I it causes me pain thinking about how to explain it to Oracle/Orion.
Thanks again,
J.