最近在做一個新項目,發(fā)現(xiàn)在IE瀏覽器下無法單點登錄簇抵,經過源碼查看追蹤,發(fā)現(xiàn)如下代碼問題
SessionConfig.java
private Integer redisExpireTime = 60 * 60 * 24 * 7;
private Integer cookieExpireTime = 60 * 60 * 2;
private Integer cookieMaxAge = -1;
private String cookieDomain = "localhost";
private String cookiePath = "/";
SessionManager.java
Cookie refreshTimeCookie = new Cookie(REFRESH_TIME_COOKIE_KEY, String.valueOf(System.currentTimeMillis()));
refreshTimeCookie.setMaxAge(sessionConfig.getCookieMaxAge());
refreshTimeCookie.setPath(sessionConfig.getCookiePath());
refreshTimeCookie.setDomain(sessionConfig.getCookieDomain());
response.addCookie(refreshTimeCookie);
login.js
var login = function() {
if(!$("#account").val() || !$("#pwd").val()) {
$('#error-msg').text("用戶名及密碼不能為空.").show();
return;
}
var loginParam = $('#login-form').find('input').serialize();
console.log(loginParam);
$.ajax({
method : 'POST',
url : 'account/login',
data : loginParam,
success : function(result) {
if (result && result.code=='0') {
console.log(getUrlParameter('requestURL'));
window.location.href = getUrlParameter('requestURL') + window.location.hash;
$('#error-msg').text('').hide();
} else {
$('#error-msg').text(result.msg).show();
}
}
});
}
現(xiàn)象:
在chrome,firefox瀏覽器下,設置cookie的domain為localhost時是可以正常保存cookie滤灯,但IE是無法保存
總結:
- 在cookie設置域名domain為localhost時,IE瀏覽器無法保存cookie
- 設置項目代碼為localhost時,使用http://localhost:8080/訪問,不論你domain設置為什么鳞骤,IE瀏覽器同樣無法保存cookie
解決方案:
1.修改host文件窒百,修改增加本地的域名對應到127.0.0.1
如:
127.0.0.1 www.360qq.com
2.不要使用localhost開發(fā)IE