0
WebメソッドへのAJAX呼び出しを使用してユーザーを検証していて、Web呼び出しが返ってくると、このコードを使用してsessionStorage
にオブジェクト私はその後、他のページからユーザーの情報にアクセスすることができます。オブジェクトを取得しようとしたときに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
はなぜ機能しませんか?
'if(isObject(mObj))'は常に 'false'になりませんか?ストレージから取得する項目は文字列になります。 – nnnnnn
どのコードが最初に実行されていますか?あなたのコードから、私は 'var mObj = sessionStorage.getItem( 'MemberObject');'は、値がセッション記憶域に設定されているajax呼び出しの前に起こると思います。 – Developer
または、あなたは '$( 'signinForm')。html'で#を逃しましたか?そして、@nnnnnnが言ったように、この場合のtypeof valは文字列です。 – Developer