[英]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.