Я использую следующий фрагмент для извлечения объекта, ранее сохраненного в localStorage
, но по какой-то причине при попытке его изменения объект остается не поддающимся проверке.Невозможно изменить свойство объекта, полученного из localStorage
Это, как я создаю объект:
if(typeof(Storage) !== "undefined") {
if(!localStorage.Obj){
localStorage.Obj = new Object();
}
var Obj = localStorage.Obj;
} else {
if(!$.cookie("Obj")){
$.cookie("Obj", new Object(), {
expires : 7, // Days
domain : 'localhost:8080',
secure : true
});
}
var Obj = $.cookie("Obj");
}
Это где я пытаюсь изменить объект:
var login = function(email, passwd){
$.ajax({
url: "http://127.0.0.1/api/v1/login",
type: "POST",
data: { email: email, password: SHA256_hash(passwd), platform: getBrowserName(), osVersion: getOsName()},
beforeSend: function(xhr){xhr.setRequestHeader('apiKey', "46d1e2f6-cf37-4275-bc1c-d674b12cc9bf");},
success: function(data, status, xhr){
Obj["logged_in"] = true;
Obj["sessionKey"] = data.sessionKey;
Obj["user_id"] = data.userID;
Obj["time_format"] = data.timeFormat;
Obj["first_name"] = data.firstName;
Obj["last_name"] = data.lastName;
},
error: function(data, status, xhr){
console.log(data);
}
});
if(Obj.logged_in){
window.location.replace("http://127.0.0.1/users/" + Obj.user_id + "/todos");
}
};
Мне нужно отметить, 3 вещи:
- Я использую jQuery
- 2 кода указаны в differe nt файлы, но порядок загрузки правильный.
- При использовании
console.log(Obj)
я получаю следующие данные:"[object Object]"
Заранее спасибо.
дочитать о том, как работает LocalStorage ... это только хранит строковые данные. Вы можете конвертировать с помощью JSON.stringify() и JSON.parse() – charlietfl
Я вижу, как только я перешел на json String и загрузил его, работала отлично. Пожалуйста, добавьте свой ответ в качестве официального ответа, чтобы я мог установить его как правильный для будущего. –