项目的登录页面使用了https,登录成功后跳转到其它http的页面去。
在ie6中会有安全警报。
查看微软的说明(http://support.microsoft.com/kb/88374...)好像只是说电脑的问题,而非代码的问题。
我在同样这样处理的京东和淘宝上去验证了一下,却没有出现上述问题,所以很想知道他们是如何避免出现这样问题的。
看了下京东的登录页面,他们是用ajax POST(详见这里)来提交用户名和密码进行登录,登录完毕以后 window.location = xxx; 跳转。由于不是通过http协议的location进行的重定向,浏览器大概就不管了。
相关代码列出供参考。
$("#loginsubmit").click(function () { var loginUrl = "../uc/loginService"; var flag = loginNameOk() && validateFunction.FORM_validate(); if (flag) { var srcValue = $("#JD_Verification1").attr("src"); if (!srcValue) { srcValue = $("#JD_Verification1").attr("src2"); } var uuid = srcValue.split("&uid=")[1].split("&")[0]; $(this).attr({ "disabled":"disabled" }); $.ajax({ type:"POST", url:loginUrl + "?uuid=" + uuid + "&" + location.search.substring(1) + "&r=" + Math.random(), contentType:"application/x-www-form-urlencoded; charset=utf-8", data:$("#formlogin").serialize(), error:function () { $("#loginpwd").attr({ "class":"text highlight2" }); $("#loginpwd_error").html("网络超时,请稍后再试").show().attr({ "class":"error" }); $("#loginsubmit").removeAttr("disabled"); $this.removeAttr("disabled"); }, success:function (result) { if (result) { var obj = eval(result); if (obj.success) { window.location = obj.success; return; } if (obj.transfer) { window.location = obj.transfer + window.location.search; return; } ..... (以下省略)