0

Internet Explorer + POST requests

asked 2013-07-23 16:05:05 +0800

demichev gravatar image demichev
0 2

updated 2013-07-23 16:29:59 +0800

Hello All,

Trying to check how ZK application performs with different browsers and came across following problem: In Internet Explorer ZK framework is using POST requests to submit data to the back-end, but for some reason actual data is transferred in POST request URL, not in the body of POST request.

E.g.:
IE9: POST https:/xxxxx.com/zkau?dtid=z2lm&cmd0=onChange&uuid0=m5APk7&data0=%7B%22value%22%3A%22AAAAAAAAAAAAAAAAAAAA%22%2C%22start%22%3A0%7D
POST data:
[no cookies]
......
FF: POST https:/xxxxxx.com/zkau
POST data:
dtid=z_e1&cmd0=onChange&uuid0=c2uPk7&data0=%7B%22value%22%3A%22AAAAAAAAAAAAAAAAAAAA%22%2C%22start%22%3A20%7D
[no cookies]
.....

As you understand the problem here is with HTTPS traffic that can be logged by PROXY in the middle. It means that sensitive data is not encrypted by ZK and transferred in open format.

Does anyone know any workaround for that problem? How to move data from URL to POST body in IE?

Thanks in advance!

UPDATE: My assumption is au.js has a problem with ajax request, it does not check browser version:

function ajaxSendNow(reqInf) {
    var setting = zAu.ajaxSettings,
        req = setting.xhr(),
        uri = zjq._useQS(reqInf) ? reqInf.uri + '?' + reqInf.content: null;
    zAu.sentTime = jq.now(); 
    try {
        req.onreadystatechange = onResponseReady;

Could anyone please confirm?

delete flag offensive retag edit

Comments

Hi demichev, what version zk do you use? I think zjq._useQS(reqInf) will return false when using IE9, only IE6/7 will return true, please refer to https://github.com/zkoss/zk/blob/master/zk/src/archive/web/js/zk/domie.js

jimmyshiau ( 2013-07-25 04:34:52 +0800 )edit

jimmyshiau, thanks for the response. Using 6.5.1.1. Unfortunately I'm not a UI developer so I'm not sure exactly what is causing the original POST problem with IE9

demichev ( 2013-07-25 15:03:28 +0800 )edit

1 Answer

Sort by » oldest newest most voted
0

answered 2013-08-12 19:12:55 +0800

demichev gravatar image demichev
0 2

updated 2013-08-12 19:13:29 +0800

Here's an answer:

Legacy IE browsers (IE6 & IE7) have some issues and do not always post data back to server properly. To fix this issue, in IE6 & 7 ZK is sending AJAX request parameter in the URL. If this is a major concern, you can turn this fix off in zk.xml then it will not send the params in URL:

<zk> <device-config> <device-type>ajax</device-type> <embed> zk.afterLoad("zk", function () { zjq._useQS = function (reqInf) { return false; }; }); </script> ]]></embed> </device-config> </zk>

Note that you should not see the request params in URL in IE8 and later IE versions. If you are seeing it in IE9, it is most likely that you are running in the compatibility/quirk mode rather than the standard IE9 mode. To check the mode, you can press F12 and see what "browser mode" and "document mode" you are with.

link publish delete flag offensive edit
Your answer
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow
1 follower

RSS

Stats

Asked: 2013-07-23 16:05:05 +0800

Seen: 17 times

Last updated: Aug 12 '13

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More