簡體   English   中英

當我嘗試檢索對象時,sessionStorage不起作用

[英]sessionStorage doesn't work when I try to retrieve an object

我正在使用對Web方法的AJAX調用來驗證用戶,並且當Web調用返回時,我試圖使用此代碼來用對象填充sessionStorage ,以便隨后可以從其他頁面訪問用戶的信息:

 success: function (r) {
                    var info = JSON.parse(r.d);
                    if (info.Reply == 'OK')
                    {
                        $('#signinForm').html("<p>You're logged in!</p>");
                        var MemberObject = { 'MemberName': $('#MemberName').val() };
                        sessionStorage.setItem('MemberObject', JSON.stringify(MemberObject));
                    }
                },
                error: function (r) {
                    alert(r.responseText);
                },
                failure: function (r) {
                    alert(r.responseText);
                }

為了測試這一點,我在頁面頂部添加了此代碼塊,以通過檢索添加到sessionStorage的對象來用登錄消息歡迎登錄消息來替換登錄對話框,但是它不起作用:

$(document).ready(function () {
        function isObject(val) {
            if (val === null) { return false; }
            return ((typeof val === 'function') || (typeof val === 'object'));
        }

        var mObj = sessionStorage.getItem('MemberObject');

        if (isObject(mObj))
        {
            var data = JSON.parse(mObj);
            $('signinForm').html("<p>Welcome, " + data.MemberName + "!</p>");
        }

sessionStorage為什么不起作用?

正如@nnnnnn在評論中所說, if (isObject(mObj))條件將始終返回false。 mObj在那個時間點是一個字符串。 要解決此問題,請在條件前而不是條件后使用JSON.parse() ,或使用其他條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM