Java Response URL 重定向的 Cookie 問題
想象下面兩行偽代碼:
- setCookie(...);
- redirect(new_web_url);
首先設置一個Cookie,然后重定向到另外一個網址,這個網址跟當前網站的域名不同
在多數情況下這兩行代碼執行毫無問題,cookie 正確保存到瀏覽器,頁面也跳轉到了新的url上。
但是有很多firefox瀏覽器下可能出現的問題是cookie無法寫入,而 url 跳轉成功。還不一定能重現出來這種問題,但發生的概率非常高。
解決的辦法:
不要直接 redirect 到另外的網址,而改用:
String new_url = "http://www.oschina.net/";
String html = "<script type='text/javascript'>location.href='"+new_url+"';</script>";
response.getWriter().print(html);
如此 cookie 就可以保證正確寫到瀏覽器,然后執行頁面跳轉。
參考文檔: