2014-10-02 40 views
2

我已經爲用戶名創建了cookie。它的工作正常。Cookie返回在GWT中未定義

但我的問題是: 當我清除cookie並嘗試Cookies.getCookie(「uname」);那麼它將返回undefined insted爲null。

那麼如何處理未定義的值?

我想,如果uname沒有設置,然後去其他部分;

請幫幫我。

+1

你確定嗎? [JavaDoc](http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/Cookies.html)表示它會返回:_該cookie的值,如果cookie不存在,則返回null 。 – 2014-10-02 10:18:56

+0

是@spider。我確定。我正在嘗試檢查cookie是否爲空。但它永遠不會返回null並返回undefined。 – 2014-10-02 10:38:36

+0

您是否肯定您沒有將Cookie設置爲「undefined」,方法是將其設置爲'null'服務器端? GWT文檔非常明確,我不想在第一時間假設他們身邊有bug。當你「清除cookie」時檢查你的標題。 – 2014-10-02 10:44:58

回答

0

是的,就是這樣。失敗的設計,請看這裏
https://code.google.com/p/google-web-toolkit/issues/detail?id=2994

建議的解決方法的工作原理:

String val = Cookies.getCookie("uname"); 
if (val == null || "undefined".equals(val)) { 
    ... 
} else { 
    ... 
} 

但通常看來,即使沒有此解決辦法工作。在我的情況下,我得到了JavaScript級別的「未定義」,但在Java代碼中,檢查null值就足夠了。讓代碼崩潰的真正問題在幾行之後,並且與getCookie()方法沒有任何關係。所以看看你是否真的確定了問題的關鍵。